Thursday, May 13, 2010

Q: Describe the use of %ROWTYPE and %TYPE in PL/SQL

[類別] PL/SQL
[問題] 請描述%ROWTYPE跟%TYPE該如何使用

Answer:
%ROWTYPE可以用來宣告一個record跟
(1)資料庫內某個table/view  OR  (2)從cursor fetch出來  的資料列有相同結構。
宣告語法如下:

變數名稱 表格名稱(OR view名稱 OR cursor名稱)%ROWTYPE;

ex: tmpRow employee%ROWTYPE;

如上就會有一個tmpRow結構跟employee(這個表格)裡的列一樣,包括欄位名稱資料型別。但並不繼承constraints!!

%TYPE可以用來宣告一個data item跟
(1)已宣告的變數  OR  (2)表格裡的某欄位  有相同的資料型別。
宣告語法如下:

變數名稱 表格名稱.欄位名稱%TYPE;

ex: tmpItem employee.salary%TYPE;

以上面的例子,tmpitem是所謂的referencing item,而employee.salary是referenced item。

使用%TYPE一定會繼承資料型別,但不一定會繼承contraints。當referenced item是資料庫表格的欄位時,就不會繼承。

Comments

0 Responses to "Q: Describe the use of %ROWTYPE and %TYPE in PL/SQL"

Post a Comment

Tags