在plsql中,物件導向的程式設計是基於物件型別來完成的。物件型別是使用者自定義的一種復合資料型別,它封裝了資料結構和用於操縱這些資料結構的過程和函式,在建立複雜應用程式時,通過使用物件型別可以降低應用開發難度,進而提高應用開發的效率和速度。
物件型別包括物件型別規範(object type specification)和物件型別體(object type body)兩個部分。其中物件型別規範是物件與應用的介面,它用於定義物件的公用屬性和方法;而物件型別體則用於實現物件型別規範所定義的公用方法,如果物件型別規範中沒有定義方法,則可以不定義物件型別體。
物件型別屬性用於描述物件所具有的特徵,每個物件型別至少包含乙個屬性,至多可以包含1000個屬性。物件型別的屬性不能使用long、long raw、rowid、urowid、plsql的特有型別(binary_integer,boolean,%type,%rowtype,ref cursor,record,pls_integer)等。並且在定義物件型別屬性時,既不能指定物件屬性的預設值,也不能指定notnull選項。
行物件是指直接基於物件型別所建立的表,列物件是指在建表時指定了物件型別列的物件表。下面給出了操作行物件的**,列物件操作方式類似。
示例1:行物件資料操作(包含列物件資料的操作類似)
-- 建立物件型別
create
orreplace
type
person_obj
asobject(
name
varchar2(10
),gender
number(1
),birthday
date);
-- 建立行物件(基於
person_obj
)create
table
person_table
ofperson_obj; --
為行物件插入資料
insert
into
person_table
values
(person_obj(
'jax01',1
,sysdate
));
-- 構造方法
insert
into
person_table
values
('jax02',1
,sysdate
); --
普通方法
-- 檢索行物件資料
select
* from
person_table
where
name
= 'jax01';
-- 更新行物件資料
update
person_table
setbirthday = to_date(
'2004-05-12'
,'yyyy-mm-dd')
where
gender = 0;
Oracle物件型別 TYPE 之MEMBER
oracle物件型別包括物件型別規範和物件型別體兩部分。物件型別可以更好的體現oracle的資料庫中設計的物件導向的概念。物件型別有很多固有的方法供我們使用,比如 member static map order,當然可以自定義構造方法。今天我就以member為例,希望起到拋磚引玉的作用。member...
Oracle 內建資料型別 大物件
start create table test blob 列儲存的是二進位製流 blob 列參與事務,可恢復 col blob insert into test values empty blob select from test create table test clob 列儲存字元資料 clo...
python物件型別 Python物件型別
因為python3.0與python2.x在語法等方面還是有一定的差別,而我的系統中裝的是python2.7,因此筆記基本已python2.7版本為主。python 中的變數是動態的,而非靜態的。意思就是說,在變數賦值之前無需進行變數型別的定義,賦給變數什麼型別,它就是什麼型別的。事實上,在pyth...