資源描述:
《oracle游標(biāo)的使用及屬性》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、oracle游標(biāo)的使用及屬性oracle游標(biāo)的使用游標(biāo)是從數(shù)據(jù)表中提取出來的數(shù)據(jù),以臨時表的形式存放到內(nèi)存中,在游標(biāo)中有一個數(shù)據(jù)指針,在初始狀態(tài)下指向的是首記錄,利用fetch語句可以移動該指針,從而對游標(biāo)中的數(shù)據(jù)進行各種操作,然后將操作結(jié)果寫回到數(shù)據(jù)庫中。一:定義游標(biāo) ?。悖酰颍螅铮颉 ∮螛?biāo)名 is select 語句;示例: ?。螅澹簟 。螅澹颍觯澹颍铮酰簦穑酰簟。铮睢 。洌澹悖欤幔颍濉 。簦澹恚穑螅幔臁。螅悖铮簦簦澹恚穑螅幔欤ィ簦穑?; ?。悖酰颍螅铮颉。恚悖酰颍螅铮颉。椋蟆 。螅澹欤澹悖簟 。。妫颍铮怼。螅悖铮簦簦澹恚稹。鳎?/p>
2、ere?。螅幔臁。尽。簦澹恚穑螅幔欤弧 。猓澹纾椋睢 。簦澹恚穑螅幔臁。海剑福埃?; ?。铮穑澹睢。恚悖酰颍螅铮?; ?。澹睿洌欢捍蜷_游標(biāo) 語法結(jié)構(gòu): ?。铮穑澹睢∮螛?biāo)名 打開游標(biāo)分為兩步:?。薄 ⒎蠗l件的記錄送入內(nèi)存 2 將指針指向第一條記錄三:提取游標(biāo)數(shù)據(jù) 語法形式:?。妫澹簦悖琛 ∮螛?biāo)名 into 變量名1,變量名2,.....; 或者 ?。妫澹簦悖琛 ∮螛?biāo)名 into 記錄型變量名; 示例: set?。螅澹颍觯澹颍铮酰簦穑酰簟。铮睢 。洌澹悖欤幔颍濉 。簦澹恚穑螅幔臁。螅悖铮簦簦澹恚穑螅幔欤ィ簦?/p>
3、pe; ?。悖酰颍螅铮颉。恚悖酰颍螅铮颉。椋蟆。螅澹欤澹悖簟。。妫颍铮怼。螅悖铮簦簦澹恚稹。鳎瑁澹颍濉。螅幔臁。尽。簦澹恚穑螅幔欤弧 。悖酰颍螅铮颍颍澹悖铮颍洹。恚悖酰颍螅铮颍ィ颍铮鳎簦穑澹弧 。猓澹纾椋睢 。簦澹恚穑螅幔臁。海剑福埃?; open?。恚悖酰颍螅铮?; ?。妫澹簦悖琛。恚悖酰颍螅铮颉。椋睿簦铩。悖酰颍螅铮颍颍澹悖铮颍洌弧 。洌猓恚螅撸铮酰簦穑酰簦穑酰簦撸欤椋睿澹ǎ簦铮撸悖瑁幔颍ǎ悖酰颍螅铮颍颍澹悖铮颍洌洌澹穑簦睿铮弧 。澹睿洌凰模宏P(guān)閉游標(biāo) ?。悖欤铮螅濉∮螛?biāo)名;Oracle游標(biāo)的屬性之一------%is
4、open%isopen屬性----測試游標(biāo)是否打開,沒打開的情況下使用fetch語句將提示錯誤。示例:???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該屬性是測試前一個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