XS_NAMESPACEパッケージ
XS_NAMESPACE
パッケージには、ネームスペース・テンプレートおよび属性を作成、管理および削除するためのサブプログラムが含まれます。
オブジェクト・タイプ、コンストラクタ・ファンクション、シノニムおよび付与
このパッケージには、次のオブジェクト・タイプ、コンストラクタ・ファンクション、シノニムおよびGRANT
文が定義されています。
-- Type definition for namespace template attribute CREATE OR REPLACE TYPE XS$NS_ATTRIBUTE AS OBJECT ( -- Member Variables -- Name of the namespace template attribute -- Must be unique within a namespace template -- Cannot be null name VARCHAR2(4000), -- Default value assigned to the attribute default_value VARCHAR2(4000), -- Trigger events associated with the attribute -- Allowed values are : -- 0 : NO_EVENT -- 1 : FIRST_READ_EVENT -- 2 : UPDATE_EVENT -- 3 : FIRST_READ_PLUS_UPDATE_EVENT attribute_events NUMBER, -- Constructor function CONSTRUCTOR FUNCTION XS$NS_ATTRIBUTE (name IN VARCHAR2, default_value IN VARCHAR2 := NULL, attribute_events IN NUMBER := 0) RETURN SELF AS RESULT, -- Return the name of the attribute MEMBER FUNCTION GET_NAME RETURN VARCHAR2, -- Return the default value of the attribute MEMBER FUNCTION GET_DEFAULT_VALUE RETURN VARCHAR2, -- Return the trigger events associated with attribute MEMBER FUNCTION GET_ATTRIBUTE_EVENTS RETURN NUMBER, -- Mutator procedures -- Set the default value for the attribute MEMBER PROCEDURE SET_DEFAULT_VALUE(default_value IN VARCHAR2), -- Associate trigger events to the attribute MEMBER PROCEDURE SET_ATTRIBUTE_EVENTS(attribute_events IN NUMBER) ); CREATE OR REPLACE TYPE XS$NS_ATTRIBUTE_LIST AS VARRAY(1000) OF XS$NS_ATTRIBUTE;
XS_NAMESPACEサブプログラムの要約
表11-9 XS_NAMESPACEサブプログラムの要約
サブプログラム | 説明 |
---|---|
新規ネームスペース・テンプレートを作成します。 |
|
既存のネームスペース・テンプレートに1つ以上の属性を追加します。 |
|
ネームスペース・テンプレートから1つ以上の属性を削除します。 |
|
指定されたネームスペース・テンプレートにハンドラ・ファンクションを割り当てます。 |
|
指定されたネームスペース・テンプレートの説明文字列を設定します。 |
|
指定されたネームスペース・テンプレートを削除します。 |
この項では次のXS_NAMESPACEサブプログラムについて説明します。
CREATE_TEMPLATEプロシージャ
CREATE_TEMPLATEプロシージャは、新規ネームスペース・テンプレートを作成します。
構文
XS_NAMESPACE.CREATE_TEMPLATE ( name IN VARCHAR2, attr_list IN XS$NS_ATTRIBUTE_LIST := NULL, schema IN VARCHAR2 := NULL, package IN VARCHAR2 := NULL, function IN VARCHAR2 := NULL, acl IN VARCHAR2 := 'SYS.NS_UNRESTRICTED_ACL' description IN VARCHAR2 := NULL);
パラメータ
パラメータ | 説明 |
---|---|
|
作成するネームスペース・テンプレートの名前。 |
|
ネームスペース・テンプレートに含まれる属性と、それらのデフォルト値および |
|
ネームスペース・テンプレートのハンドラ・ファンクションを含むスキーマ。 |
|
ネームスペース・テンプレートのハンドラ・ファンクションを含むパッケージ。 |
|
ネームスペース・テンプレートのハンドラ・ファンクション。ハンドラ・ファンクションは、属性イベントの発生時にコールされます。 |
|
このネームスペース・テンプレートのACLの名前。ACLが提供されていない場合、デフォルトは、アプリケーション・ユーザーによる無制限の属性操作を許可する事前定義済ACL |
|
ネームスペース・テンプレートのオプションの説明文字列。 |
例
次の例は、POAttrs
というネームスペース・テンプレートを作成します。ネームスペース・テンプレートには、attrlist
で定義されている属性のリストが含まれます。ネームスペース・テンプレートのハンドラ・ファンクションはPopulate_Order_Func
と呼ばれます。このハンドラ・ファンクションは、SCOTT
スキーマに含まれるOrders_Pckg
パッケージの一部です。ネームスペース・テンプレートには、テンプレートから作成されたネームスペースに対する無制限の操作を許可するNS_UNRESTRICTED_ACL
がテンプレートに設定されています。
DECLARE attrlist XS$NS_ATTRIBUTE_LIST; BEGIN attrlist := XS$NS_ATTRIBUTE_LIST(); attrlist.extend(2); attrlist(1) := XS$NS_ATTRIBUTE('desc', 'general'); attrlist(2) := XS$NS_ATTRIBUTE(name=>'item_no', attribute_events=>XS_NAMESPACE.FIRSTREAD_EVENT); SYS.XS_NAMESPACE.CREATE_TEMPLATE('POAttrs', attrlist, 'SCOTT', 'Orders_Pckg','Populate_Order_Func', 'SYS.NS_UNRESTRICTED_ACL', 'Purchase Order Attributes'); END;
ADD_ATTRIBUTESプロシージャ
ADD_ATTRIBUTES
プロシージャは、既存のネームスペース・テンプレートに1つ以上の属性を追加します。
構文
XS_NAMESPACE.ADD_ATTRIBUTES ( template IN VARCHAR2, attribute IN VARCHAR2, default_value IN VARCHAR2 := NULL, attribute_events IN PLS_INTEGER := XS_NAMESPACE.NO_EVENT); XS_NAMESPACE.ADD_ATTRIBUTES ( template IN VARCHAR2, attr_list IN XS$NS_ATTRIBUTE_LIST);
パラメータ
パラメータ | 説明 |
---|---|
|
属性が追加されるネームスペース・テンプレートの名前。 |
|
追加する属性の名前。 |
|
追加する属性のリスト。 |
|
属性のデフォルト値。 |
|
属性に関連付けられている更新イベントなどの属性イベント。 |
例
次の例は、item_type
という属性をPOAttrs
ネームスペースに追加します。追加される新規属性のデフォルト値と属性イベントも指定します。
BEGIN SYS.XS_NAMESPACE.ADD_ATTRIBUTES(template=>'POAttrs',attribute=>'item_type', default_value=>'generic', attribute_events=>XS_NAMESPACE.update_event); END;
REMOVE_ATTRIBUTESプロシージャ
REMOVE_ATTRIBUTES
プロシージャは、ネームスペース・テンプレートから1つ以上の属性を削除します。属性名が指定されていない場合は、すべての属性がネームスペース・テンプレートから削除されます。
構文
XS_NAMESPACE.REMOVE_ATTRIBUTES ( template IN VARCHAR2, attribute IN VARCHAR2); XS_NAMESPACE.REMOVE_ATTRIBUTES ( template IN VARCHAR2, attr_list IN XS$LIST); XS_NAMESPACE.REMOVE_ATTRIBUTES ( template IN VARCHAR2);
パラメータ
パラメータ | 説明 |
---|---|
|
属性が削除されるネームスペース・テンプレートの名前。 |
|
削除する属性の名前。 |
|
削除する属性名のリスト。 |
例
次の例は、item_type
属性をPOAttrs
ネームスペースから削除します。
BEGIN SYS.XS_NAMESPACE.REMOVE_ATTRIBUTES('POAttrs','item_type'); END;
次の例は、POAttrs
ネームスペース・テンプレートからすべての属性を削除します。
BEGIN SYS.XS_NAMESPACE.REMOVE_ATTRIBUTES('POAttrs'); END;
SET_HANDLERプロシージャ
SET_HANDLER
プロシージャは、指定されたネームスペース・テンプレートにハンドラ・ファンクションを割り当てます。
構文
XS_NAMESPACE.SET_HANDLER ( template IN VARCHAR2, schema IN VARCHAR2, package IN VARCHAR2, function IN VARCHAR2);
パラメータ
パラメータ | 説明 |
---|---|
|
ハンドラ・ファンクションを設定するネームスペース・テンプレートの名前。 |
|
ハンドラ・パッケージとファンクションを含むスキーマ。 |
|
ハンドラ・ファンクションを含むパッケージの名前。 |
|
ネームスペース・テンプレートのハンドラ・ファンクションの名前。 |
例
次の例は、Populate_Order_Func
というハンドラ・ファンクションをPOAttrs
ネームスペース・テンプレートに対して設定します。
BEGIN SYS.XS_NAMESPACE.SET_HANDLER('POAttrs','SCOTT', 'Orders_Pckg','Populate_Order_Func'); END;
SET_DESCRIPTIONプロシージャ
SET_DESCRIPTION
プロシージャは、指定されたネームスペース・テンプレートの説明文字列を設定します。
構文
XS_NAMESPACE.SET_DESCRIPTION ( template IN VARCHAR2, description IN VARCHAR2);
パラメータ
パラメータ | 説明 |
---|---|
|
説明を設定するネームスペース・テンプレートの名前。 |
|
指定されたネームスペース・テンプレートの説明文字列。 |
例
次の例は、POAttrs
ネームスペース・テンプレートの説明文字列を設定します。
BEGIN SYS.XS_NAMESPACE.SET_DESCRIPTION('POAttrs','Purchase Order Attributes'); END;
DELETE_TEMPLATEプロシージャ
DELETE_TEMPLATE
プロシージャは、指定されたネームスペース・テンプレートを削除します。
構文
XS_NAMESPACE.DELETE_TEMPLATE( template IN VARCHAR2, delete_option IN PLS_INTEGER := XS_ADMIN_UTIL.DEFAULT_OPTION);
パラメータ
パラメータ | 説明 |
---|---|
|
削除するネームスペース・テンプレートの名前。 |
|
使用する削除オプション。ネームスペース・テンプレートに対して、次のオプションの動作は同じです。
|
例
次の例は、デフォルトの削除オプションを使用してPOAttrsネームスペース・テンプレートを削除します。
BEGIN SYS.XS_NAMESPACE.DELETE_TEMPLATE('POAttrs',XS_ADMIN_UTIL.DEFAULT_OPTION); END;