資源描述:
《oracle游標(biāo)的使用及屬性》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、oracle游標(biāo)的使用及屬性oracle游標(biāo)的使用游標(biāo)是從數(shù)據(jù)表中提取出來的數(shù)據(jù),以臨時(shí)表的形式存放到內(nèi)存中,在游標(biāo)中有一個(gè)數(shù)據(jù)指針,在初始狀態(tài)下指向的是首記錄,利用fetch語句可以移動(dòng)該指針,從而對游標(biāo)中的數(shù)據(jù)進(jìn)行各種操作,然后將操作結(jié)果寫回到數(shù)據(jù)庫中。一:定義游標(biāo) ?。悖酰颍螅铮颉 ∮螛?biāo)名 ?。椋蟆 。螅澹欤澹悖簟 ≌Z句;示例: ?。螅澹簟 。螅澹颍觯澹颍铮酰簦穑酰簟。铮睢 。洌澹悖欤幔颍濉 。簦澹恚穑螅幔臁。螅悖铮簦簦澹恚穑螅幔欤ィ簦穑?; ?。悖酰颍螅铮颉。恚悖酰颍螅铮颉。椋蟆 。螅澹欤澹悖簟 。。妫颍铮怼。螅悖铮簦簦澹恚稹。鳎?/p>
2、ere?。螅幔臁。尽。簦澹恚穑螅幔?; ?。猓澹纾椋睢 。簦澹恚穑螅幔臁。海剑福埃?; ?。铮穑澹睢。恚悖酰颍螅铮?; ?。澹睿?;二:打開游標(biāo) 語法結(jié)構(gòu): ?。铮穑澹睢∮螛?biāo)名 打開游標(biāo)分為兩步: 1 將符合條件的記錄送入內(nèi)存 ?。病⒅羔樦赶虻谝粭l記錄三:提取游標(biāo)數(shù)據(jù) 語法形式: fetch 游標(biāo)名?。椋睿簦铩∽兞棵?,變量名2,.....; 或者 ?。妫澹簦悖琛 ∮螛?biāo)名 into 記錄型變量名; 示例: ?。螅澹簟。螅澹颍觯澹颍铮酰簦穑酰簟。铮睢 。洌澹悖欤幔颍濉 。簦澹恚穑螅幔臁。螅悖铮簦簦澹恚穑螅幔欤ィ簦?/p>
3、pe; ?。悖酰颍螅铮颉。恚悖酰颍螅铮颉。椋蟆。螅澹欤澹悖簟。。妫颍铮怼。螅悖铮簦簦澹恚稹。鳎瑁澹颍濉。螅幔臁。尽。簦澹恚穑螅幔?; ?。悖酰颍螅铮颍颍澹悖铮颍洹。恚悖酰颍螅铮颍ィ颍铮鳎簦穑?; begin ?。簦澹恚穑螅幔臁。海剑福埃?; open?。恚悖酰颍螅铮?; fetch?。恚悖酰颍螅铮颉。椋睿簦铩。悖酰颍螅铮颍颍澹悖铮颍?; dbms_output.put_line(to_char(cursorrecord.deptno)); ?。澹睿?;四:關(guān)閉游標(biāo) ?。悖欤铮螅濉∮螛?biāo)名;Oracle游標(biāo)的屬性之一------%is
4、open%isopen屬性----測試游標(biāo)是否打開,沒打開的情況下使用fetch語句將提示錯(cuò)誤。示例:???setserveroutputon??declare???????tempsalscott.emp.sal%type;??????cursormycursorisselect*fromscott.empwheresal>tempsal;??????cursorrecordmycursor%rowtype;??begin??????tempsal:=800;?????ifmycursor%isopenthen???????dbms_output.putline(to_ch
5、ar(cursorrecord.deptno);????else????????dbms_output.put_line('游標(biāo)沒有打開');?????endif;??end;Oracle游標(biāo)的屬性之二------%found該屬性是測試前一個(gè)fetch語句是否有值,有值將返回true,不然false.示例:?????setserveroutpuon?????declare?????????tempsalscott.emp.sal%type;?????????cursormycursorisselect*fromscott.empwheresal>tempsal;??????
6、???cursorrecordmycursor%rowtype;????begin?????????tempsal:=800;?????????openmycursor;??????????????????fetchmycursorintocursorrecord;??????????????????ifmycursor%foundthen?????????????????????dbms_output.put_line(to_char(cursorrecord.deptno);?????????????????else?????????????????????dbms_ou
7、tpu.put_line('沒有數(shù)據(jù)');?????????????????endif;??????????end;Oracle游標(biāo)的屬性之三------%notfound該屬性是%found屬性的反邏輯,常被用于退出循環(huán)。setserveroutputondeclare???tempsalscott.emp.sal%type;???cursormycursorisselect*fromscott.empwheresal>tempsal;???cursorrecordmycursor%rowtype;b