oracle 返回結果集的方法

2021-08-31 06:32:24 字數 1633 閱讀 2547

oracle返回結果集

過程返回記錄集:

create or replace package pkg_test

as type myrctype is ref cursor;

procedure get (p_id number, p_rc out myrctype);

end pkg_test;

/ create or replace package body pkg_test

as procedure get (p_id number, p_rc out myrctype)

is sqlstr   varchar2 (500);

begin

if p_id = 0 then

open p_rc for

select id, name, ***, address, postcode, birthday

from student;

else

sqlstr :=

'select id,name,***,address,postcode,birthday

from student where id=:w_id';

open p_rc for sqlstr using p_id;

end if;

end get;

end pkg_test;

/ 函式返回記錄集:

建立帶ref cursor定義的包和包體及函式:

create or replace

package pkg_test as

/* 定義ref cursor型別

不加return型別,為弱型別,允許動態sql查詢,

否則為強型別,無法使用動態sql查詢;

*/ type myrctype is ref cursor;  

--函式申明

function get(intid number) return myrctype;

end pkg_test;

/ create or replace

package body pkg_test as

--函式體

function get(intid number) return myrctype is

rc myrctype;  --定義ref cursor變數

sqlstr varchar2(500);

begin

if intid=0 then

--靜態測試,直接用select語句直接返回結果

open rc for select id,name,***,address,postcode,birthday from student;

else

--動態sql賦值,用:w_id來申明該變數從外部獲得

sqlstr := 'select id,name,***,address,postcode,birthday from student where id=:w_id';

open rc for sqlstr using intid;

end if;

return rc;

end get;

end pkg_test; /

Oracle 儲存過程返回結果集

oracle 儲存過程返回結果集 1.返回陣列 在oracle後台建立乙個程式包或者儲存過程 connect scott tiger create or replace package ado callpkg as type eid is table of number 4 index by bin...

oracle 儲存過程返回結果集

好久沒上來了,難道今天工作時間稍有空閒,研究了一下oracle儲存過程返回結果集.配合oracle臨時表,使用儲存過程來返回結果集的資料讀取方式可以解決海量資料表與其他表的連線問題.在儲存過程中先根據過濾條件從海量資料表中選出符合條件的記錄並存放到臨時中,可以通過乙個檢視將臨時表與其他相關表連線起來...

oracle 儲存過程 返回結果集

oracle儲存過程如何返回結果集 最簡單的方式 返回oracle的系統游標 create or replace procedure card count yljg v start date in varchar2,開始時間 v end date in varchar2,結束時間 v parento...