参照型
強参照
TYPE ref_type_name IS REF CURSOR RETURN hoge%ROWTYPE;
- 参照型に対してレコードの型が定義されている。
- 定義外のレコードタイプに関連つけようとするとエラーとなる。
弱参照
TYPE ref_type_name IS REF CURSOR;
- 参照型に対してレコードの型が定義されていない。
- どのタイプのレコードを返すカーソルでも利用可能。
レコード型
TYPE hoge IS RECORD( id number(4), name varchar(256) ); TYPE cur_type IS REF CURSOR RETURN hoge; cv cur_type; --カーソル変数の宣言
- fetchする際もRECORD型の変数に対して行える。
弱参照カーソルのサンプル
弱参照カーソルを返すファンクション
create or replace package mypack is type ペット管理_cur is ref cursor return ペット管理%rowtype; function ペット管理_list( shiire IN number, over IN boolean ) return ペット管理_cur; end mypack;
create or replace package body mypack is function ペット管理_list( shiire IN number, over IN boolean ) return ペット管理_cur is rc ペット管理_cur; begin if over = TRUE then open rc for select * from ペット管理 where 仕入金額 > shiire; else open rc for select * from ペット管理 where 仕入金額 <= shiire; end if; return rc; end; end mypack; /