Oracle PL/SQL 的 rowid 資料型態


在 Oracle Database 中,

rowid 是資料值, 但也可以是一種資料型態.

參考下面範例, 就可以明瞭 :
 建立一個測試 Table
create table tomTest (
aa varchar2(100)
, bb number
);

-- 新增 Temp Data
insert into tomTest values( 'a', 1000 );
insert into tomTest values( 'b', 2000 );
insert into tomTest values( 'c', 3000 );
insert into tomTest values( 'd', 4000 );
insert into tomTest values( 'e', 5000 );
commit;


 建立一個 Function, 以 rowid 當作參數的資料型態
create or replace function tom_check_number_f( p_rowid rowid ) return boolean is
v_data number;
begin
select bb
into v_data
from tomTest
where rowid = p_rowid;

if v_data >= 3000 then
return true;
else
return false;
end if;
end;

 主程式碼, 執行上面 Function
declare
cursor cur_data is
select rowid
, t.aa
from tomTest t;
begin
for rec_data in cur_data loop
if tom_check_number_f( rec_data.rowid ) then
dbms_output.put_line( rec_data.aa || ' >= 3000' );
else
dbms_output.put_line( rec_data.aa || ' < 3000' );
end if;
end loop;
end;

-- 執行結果 :
a < 3000
b < 3000
c >= 3000
d >= 3000
e >= 3000


Related Posts Plugin for WordPress, Blogger...