亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

oracle cursor 用法總結

發布時間:2020-07-30 15:15:23 來源:網絡 閱讀:1278 作者:簡杰生 欄目:關系型數據庫

PL sql中cursor用法是非常廣泛的,常常用于存儲過程和函數的返回值,其中用于函數的返回值變相的解決了pl sql 沒有表值函數的問題,一般的,在java 調用存儲過程,所返回的結果集也是用游標去存儲的。

游標分為動態游標和靜態游標

1,動態游標定義分兩種方式一種是先定義自定義類型如 Type my_cursor is ref cursor .這樣就可以定義了一個游標類型,然后我們自己的變量就可以用這個自定義類型去定義了,如 cursorDemo my_cursor (直接用系統自帶的sys_refcursor也是可以的);另外上面的my_cursor 又可以分為強類型和弱類型,顧名思義,強類型是指在定義的時候指定只能放哪些類型的值,如上面強類型定義Type my_cursor is ref cursor return emp%rowtype. 游標之所以稱之為動態是因為可以放不同的值或者不同表的值(限于弱類型,強類型的動態是指相同類型不同表的值),如 open cursorDemo for

select 1 from dual;也可以 open cursorDemo for select a ,b from dual;

2,靜態游標就比較簡單了,定義的時候直接指定值就好了如 cursor my_cursor is select 1 from dual;


游標的使用。

1,在java中游標是用類型oracleTypes.CURSOR 調用然后返回結果,部分代碼參考如下

CallableStatement cs = ct.prepareCall("{call findset_emp(?,?)}");  

            cs.setInt(1, 10);  

            cs.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);  

              

            cs.execute();  

            ResultSet rs = (ResultSet)cs.getObject(2);  

            while(rs.next()){  

                System.out.println(rs.getInt(1)+" "+rs.getString(2));  

            } 

2,在存儲過程或者函數中可以使用for  循環和fetch去調用

for循環的格式是如下

emp my_cursor%rowtype

 for emp in my_cursor loop dbms_output.put_line(emp.a);

end loop;

fetch 用法格式如下

loop

fetch my_cursor into emp;

exit when emp%notfound;

dbms_output.put_line(emp.a);

end loop;

兩者對比for循環應該是更簡單一些,當然還有其他用法,這里就不一一介紹,基本這兩種就夠用了。















向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武隆县| 凌海市| 昌图县| 莎车县| 临邑县| 镇雄县| 郸城县| 定南县| 德保县| 宝应县| 井冈山市| 忻州市| 郸城县| 蚌埠市| 五峰| 乌海市| 大邑县| 遵义市| 巴林右旗| 定安县| 洛隆县| 武山县| 双辽市| 嵊泗县| 宁国市| 枞阳县| 辉南县| 绥化市| 南汇区| 高雄县| 平凉市| 大方县| 鹤山市| 盘山县| 西昌市| 舒城县| 兴和县| 岳阳市| 麻阳| 尚义县| 东兰县|