雖然一開始可能很有遠見地,使用 table_name.column_name%TYPE 的方式來宣告變數的型態,資料欄位的調整就可以直接地被套用。但是,有時程式數量龐大,有時是程式寫作習慣不佳,而且,也並不一定每個變數都有相對應的欄位可以這樣宣告,這時候,集中管理變數型態的方式可以參考看看。
一般來說, PL/SQL 變數的資料型態的宣告, 長得像這樣:
var1 VARCHAR2 (100); var2 table_name.column_name%TYPE;
但是,如果想要集中管理它們,可以使用以下方式:
Step 1. 建立一個 PACKAGE,作為型態宣告與定義的容器:
CREATE OR REPLACE PACKAGE pg_types_def IS -- 宣告一個 RECORD TYPE TYPES_DEF TYPE TYPES_DEF IS RECORD ( var1_type VARCHAR2(100), var2_type table_name.column_name%TYPE); -- 宣告一個變數 MY_TYPES, 指定型別為 TYPES_DEF MY_TYPES TYPES_DEF; END; /
Step 2. 在程式中引用:
var1 pg_types_def.MY_TYPES.var1_type%TYPE; var2 pg_types_def.MY_TYPES.var2_type%TYPE;
所有程式中的變數宣告,都對應回 pg_types_def,而不直接對應 table_name.column_name%TYPE,更不要在各處自行宣告啥 VARCHAR2(n), NUMBER(n,m)之類的,如此,便可達成集中管理資料型態;在需要之時,只要變動 pg_types_def 內的定義,即可達成所有宣告為該型別的變數都可連動對應。
0 回應 :
張貼留言
讓阿布知道你對這篇文章的想法吧!