物件的定義
物件可以巢狀,而且巢狀級數不限。
1. 例程:
-- 建立物件頭
create or replace type test_obj is object(
m_name varchar2(30),
m_id number,
member procedure getname(p_id in number, p_name out varchar2),
member function getname(p_id number) return varchar2,
member procedure setname(p_id in number, p_name in varchar2));/
-- 建立物件包體
create or replace type body test_obj is
member procedure getname(p_id in number, p_name out varchar2) is
begin
select ename into p_name from emp where empno = p_id;
end;
member function getname(p_id in number) return varchar2 is
l_name varchar2(30);
l_sql varchar2(100);
begin
-- 不能使用 m_name 來代替 l_name
l_sql := 'select ename from emp where empno = :1';
execute immediate l_sql into l_name using p_id;
return l_name;
end;
member procedure setname(p_id in number, p_name in varchar2) is
l_sql varchar2(100);
begin
l_sql := 'update emp set ename = :1 where empno = :2';
execute immediate l_sql using p_name, p_id;
commit;
end;
end;
/-- 刪除物件:
drop type my_object;
2. 呼叫上述例程,注意呼叫方法:
declare
l_name varchar2(30);
mo1 test_obj;
mo2 test_obj;
begin
mo1 := test_obj('test', 10);
mo2 := mo1;
mo1.getname(7369, l_name);
dbms_output.put_line(l_name);
l_name := mo2.getname(7369);
dbms_output.put_line(l_name);
mo2.setname(7369, 'yang');
end;
/3.2 物件的存貯和檢索
1. 存貯和檢索物件:
oracle 的物件關係模型允許物件作為資料庫表中的乙個字段存貯。例如:
create table yang_test(test test_obj);
注意:在定義表之後,若想改變物件test_obj的內容,則必須首先刪除表。
要求:如何應用該欄位?如何呼叫此字段中包含的函式和過程?
Oracle資料庫物件
本文研究有關oracle資料庫物件的用法。oracle中包含五種資料庫物件,分別為別名 序列 檢視 索引和簇,其中別名和序列為oracle中特有的資料庫物件。別名 通過對oracle中資料表設定別名之後,可以使用別名對資料表進行與原表名同樣的各種操作。其語句關鍵字為synonym 下面看其具體用法。...
oracle資料庫物件
alter table 檢視 站 show recyclebin 清空 站 purge recyclebin 徹底刪除表 drop table emp purge 2.檢視 優點 1.檢視是一張虛表 2.檢視建立在已有表的基礎上,檢視賴以建立的這些表稱為基表。3.向檢視提供資料內容的語句為 sele...
Oracle資料庫物件
本文研究有關oracle資料庫物件的用法。oracle中包含五種資料庫物件,分別為別名 序列 檢視 索引和簇,其中別名和序列為oracle中特有的資料庫物件。別名 通過對oracle中資料表設定別名之後,可以使用別名對資料表進行與原表名同樣的各種操作。其語句關鍵字為synonym,下面看其具體用法。...