700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Oracle 创建及调用存储过程 脚本示例

Oracle 创建及调用存储过程 脚本示例

时间:2021-10-13 17:52:28

相关推荐

Oracle 创建及调用存储过程 脚本示例

方便复习

=====

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;

/

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。