[zt] sys_refcursor實現procedure直接返回結果集不必通過package
通過sys_refcursor可以實現procedure直接返回結果集不必通過package
SQL> create table ttt(id int , name varchar2(10));
表已建立。
SQL> insert into ttt values(1,'a');
已建立 1 行。
SQL> insert into ttt values(2,'b');
已建立 1 行。
SQL> commit;
提交完成。
SQL>create or replace procedure getmult(result out sys_refcursor)
2 is
3 begin
4 open result for select * from ttt;
5* end;
SQL> /
過程已建立。
SQL> variable a refcursor
SQL> exec getmult(:a);
PL/SQL 過程已成功完成。
SQL> print :a;
ID NAME
---------- ----------
1 a
2 b
--定義sys_refcursor型別的變數也可以直接返回結果集
sys_refcursor就是系統事先定義好的一個ref cursor型別的資料型別
SQL> select * into :a from ttt;
ID NAME
---------- ----------
1 a
2 b
--利用cursor express可以直接返回結果集
SQL> select cursor(select * from ttt) from dual;
CURSOR(SELECT*FROMTT
--------------------
CURSOR STATEMENT : 1
CURSOR STATEMENT : 1
ID NAME
---------- ----------
1 a
2 b
http://warehouse.itpub.net/post/777/449133
--------------------------------------------------------------------------------------------------------------------------
CREATE OR REPLACE PROCEDURE DFMS.sp_assy_load_relation (
i_system_sn IN VARCHAR2,
i_work_group IN VARCHAR2,
o_is_failed OUT INTEGER,
o_res OUT VARCHAR2,
o_relation_set OUT sys_refcursor
)
IS
v_eor_key VARCHAR2 (50);
v_record_count INTEGER;
v_work_order VARCHAR2 (25);
v_plant_code VARCHAR2 (20);
v_parent_wo VARCHAR2 (25);
v_wo_type VARCHAR2 (15);
v_route_code NUMBER;
v_model_name VARCHAR2 (35);
v_model_ver VARCHAR2 (10);
v_gmid VARCHAR2 (50);
v_flag INTEGER := 1;
ex EXCEPTION;
BEGIN
v_eor_key := '-1';
sp_assy_generate_relation (i_system_sn, v_flag, o_res);
IF o_res <> 'OK'
THEN
RAISE ex;
END IF;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-605648/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何通過 PHP 取得 MySQL procedure 結果PHPMySql
- iOS FMDB有返回結果集和無返回結果集iOS
- Oracle中過程/函式返回結果集Oracle函式
- Oracle 儲存過程返回結果集|轉|Oracle儲存過程
- Oracle 儲存過程返回結果集 (轉)Oracle儲存過程
- JAVA + Oracle儲存過程返回查詢結果集JavaOracle儲存過程
- 封裝ResultVO實現統一返回結果封裝
- mysql返回一個結果集的儲存過程小例子MySql儲存過程
- alter package/procedurePackage
- PostgreSQL函式:返回表查詢結果集SQL函式
- java使用mybatis 呼叫儲存過程返回一個遊標結果集JavaMyBatis儲存過程
- MyBatis 返回結果MyBatis
- Laravel 手動建立分頁返回物件結果集Laravel物件
- 如何通過PHP取得MySQLprocedure結果PHPMySql
- ORA-04042 procedure, function, package, or package body does not existFunctionPackage
- go 如何處理資料庫返回的多結果集Go資料庫
- 通用結果類用於返回響應結果
- golang通過反射使用json字串呼叫struct的指定方法及返回json結果Golang反射JSON字串Struct
- MySQL in 查詢,並通過 FIELD 函式按照查詢條件順序返回結果MySql函式
- java使用mybatis 呼叫函式返回一個遊標結果集JavaMyBatis函式
- 【附加題1】通過程式碼實現兩個超大的數字相加的結果?
- [譯] 通過整合學習提高機器學習結果機器學習
- ADRCI工具的SHOW ALERT TAIL返回過多的結果AI
- JavaScript中Typeof返回的結果JavaScript
- AJAX的同步返回結果值
- Python返回多個結果Python
- 【SQL】獲取指定範圍內結果集的實現方法SQL
- 動態返回結果的檢視
- 全域性統一返回結果類
- JAVA資料庫處理(連線,資料查詢,結果集返回)Java資料庫
- Oracle 過程(Procedure)、函式(Function)、包(Package)、觸發器(Trigger)Oracle函式FunctionPackage觸發器
- springboot返回結果包裝統一返回格式Spring Boot
- jdbc 呼叫 sql server 的儲存過程時“該語句沒有返回結果集”的解決方法JDBCSQLServer儲存過程
- 通過佇列實現棧OR通過棧實現佇列佇列
- 通過shell指令碼檢視procedure的資訊指令碼
- 【Golang】Go 通過結構(struct) 實現介面(interface)GolangStruct
- 結果集 (ResultSet)全面解析
- 批次對比結果集