oracle資料庫物件學習

2021-08-30 20:54:25 字數 1791 閱讀 9131

物件的定義

物件可以巢狀,而且巢狀級數不限。

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,下面看其具體用法。...