蜜蜂号覚書 参照型
※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

参照型

強参照

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;
/