Oracle函數返回類型為record定義的方法未必人人都會,下面就為您詳細介紹一個Oracle函數返回類型為record定義的實例,供您參考。
- CREATE OR REPLACE
- package pkg_test as
- /* 定義ref cursor類型
- 不加return類型,為弱類型,允許動態sql查詢,
- 否則為強類型,無法使用動態sql查詢;
- */
- type myrctype is ref cursor;
--Oracle函數申明
- function get(intID number) return myrctype;
- end pkg_test;
- /
- CREATE OR REPLACE
- package body pkg_test as
--Oracle函數體
- 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,sex,address,postcode,birthday from student;
- else
- --動態sql賦值,用:w_id來申明該變量從外部獲得
- sqlstr := 'select id,name,sex,address,postcode,birthday from student where id=:w_id';
- --動態測試,用sqlstr字符串返回結果,用using關鍵詞傳遞參數
- open rc for sqlstr using intid;
- end if;
- return rc;
- end get;
- pkg_test;