方便复习
=====
droptabletestTable;
/
commit;
/
--1.创建表
--==========================================================================================
createtabletesttable(sidinteger,coursenvarchar2(30),scoreinteger);
/
commit;
/
createorreplaceprocedureInsertTestData
(
mStartinteger
)
as
iint:=1;
begin
i:=mStart;
whilei<10loop
insertintotestTable(sid,Course,score)values(i,'课程'||i,i*10);
i:=i+1;
endloop;
end;
/
commit;
/
--2.新增数据
--==========================================================================================
Declare
iinteger:=1;
v_sqlvarchar(1000);
begin
i:=1;
whilei<10loop
v_sql:='insertintotestTable(sid,Course,score)values(:1,:2,:3)';
executeimmediatev_sqlusingi,'课程'||i,i*10;
commit;
i:=i+1;
endloop;
end;
/
commit;
/
--3.调用存储过程
--==========================================================================================
begin
InsertTestData(10);
end;
/
--或在PL/SQLCOMMANDWINDOWS中执行
--==========================================================================================
/*
setserveroutputon
declare
iint:=1;
begin
whilei<10loop
insertintotestTable(sid,Course,score)values(i,'课程'||i,i*10);
i:=i+1;
endloop;
end;
/
commit;
*/
select*fromTestTable;
/
--4.通过rowid更新表中相同纪录的第一条纪录,rowid每次生成时都为固定的有序编号
--==========================================================================================
UPDATETestTableASETA.sid=1
wherea.rowid=(SELECTrowidFROMTestTablebwhererownum<2anda.rowid=b.rowid)
andrownum<2;
/
commit;
/
select*fromTestTable;
/
--5.对表中成绩累乘
--==========================================================================================
--loga+logb=logab
--10logad=ab
Selectpower(10,Sum(Log(10,score)))fromTestTable;
/
--6.对表中成绩累加
--==========================================================================================
selecta.sid,sum(a.score),
(selectsum(b.score)
fromtesttableb
whereb.sid<=a.sid)
fromtesttablea
groupbya.sid
orderbya.sid;
/
commit;
/
--一次插入1000万条纪录
insertintotestTableselectrownumsid,rownum+1scorefromdualconnectbylevel<=10000000
commit;
/