107 DBMS_MGD_ID_UTL
DBMS_MGD_ID_UTL
パッケージには、様々なユーティリティ機能およびプロシージャが含まれます。
これらは、次のユーティリティ・サブプログラムで構成されています。
-
JavaおよびPL/SQLのロギング・レベルを設定および取得するロギング・ユーティリティ
-
プロキシ・サーバーのホストとポートを設定および設定解除するための2つのプロシージャで構成されるプロキシ・ユーティリティ
-
メタデータの管理に使用されるファンクションおよびプロシージャで構成されるメタデータ・ユーティリティ
参照:
詳細は、『Oracle Database開発ガイド』を参照してください。
この章では、これらのユーティリティ・サブプログラムについてそれぞれ説明します。次の項目が含まれています。
この章の例では、次のコマンド・セットを実行してから各スクリプトを実行することを想定しています。
SQL> connect / as sysdba;
Connected.
SQL> create user mgduser identified by password;
SQL> grant connect, resource to mgduser;
SQL> connect mgduser
Enter password: mgduserpassword
Connected.
SQL> set serveroutput on;
107.1 DBMS_MGD_ID_UTLのセキュリティ・モデル
catmgd.sql
スクリプトを実行して、DBMS_MGD_ID_UTL
パッケージおよび識別コード・パッケージ・スキーマ・オブジェクトをMGDSYS
スキーマにロードする必要があります。
DBMS_MGD_ID_UTL
は、MGDSYS
所有のパッケージです。無名PL/SQLブロックからコールされたすべてのDBMS_MGD_ID_UTL
サブプログラムは、現行のユーザーの権限を使用して実行されます。
ユーザーには、DBMS_MGD_ID_UTL
パッケージとそのサブプログラムを使用するために、接続ロールおよびリソース・ロールが付与されている必要があります。
EXECUTE
権限は、MGD_ID
、MGD_ID_COMPONENT
およびMGD_ID_COMPONENT_VARRAY
の各ADTと、このパッケージDBMS_MGD_ID_UTL
についてPUBLIC
に付与されます。
SELECT
またはREAD
権限は、読取り専用ビューMGD_ID_CATEGORY
およびMGD_ID_SCHEME
、メタデータ・ビューUSER_MGD_ID_CATEGORY
およびUSER_MGD_ID_SCHEME
、表MGD_ID_XML_VALIDATOR
、順序MGD$SEQUENCE_CATEGORY
についてPUBLIC
に付与されます。
INSERT
、UPDATE
およびDELETE
権限は、メタデータ・ビューUSER_MGD_ID_CATEGORY
およびUSER_MGD_ID_SCHEME
についてPUBLIC
に付与されます。
パブリック・シノニムは、MGD_ID
、MGD_ID_COMPONENT
およびMGD_ID_COMPONENT_VARRAY
の各ADTと、このパッケージDBMS_MGD_ID_UTL
に加え、読取り専用ビューMGD_ID_CATEGORY
およびMGD_ID_SCHEME
、メタデータ・ビューUSER_MGD_ID_CATEGORY
およびUSER_MGD_ID_SCHEME
、表MGD_ID_XML_VALIDATOR
について同じ名前で作成されます。
107.2 DBMS_MGD_ID_UTLの定数
DBMS_MGD_ID_UTL
パッケージは、パラメータ値の指定に使用するいくつかの定数を定義します。
これらの定数を、次の表に示します。
表107-1 DBMS_MGD_ID_UTLの定数 - インストールされたカテゴリIDおよび名前
名前 | 値 |
---|---|
|
1 |
|
EPC |
表107-2 DBMS_MGD_ID_UTLの定数 - ロギング・レベル
名前 | 値 |
---|---|
|
0 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
107.3 DBMS_MGD_ID_UTLの例外
このトピックの表はDBMS_MGD_ID_UTL
の例外を示しています。
表107-3 DBMS_MGD_ID_UTLパッケージで発生する例外
名前 | エラー・コード | 説明 |
---|---|---|
|
-55200 |
タグ・データの変換中に、Java例外が発生しました。 |
|
-55201 |
指定したカテゴリは検出されていません。 |
|
-55202 |
タグ・データの変換中に、指定したスキームが検出されていません。 |
|
-55203 |
タグ・データの変換中に、指定したレベルが検出されていません。 |
|
-55204 |
タグ・データの変換中に、指定したオプションが検出されていません。 |
|
-55205 |
タグ・データの変換中に、フィールドの検証操作に失敗しました。 |
|
-55206 |
タグ・データの変換中に、定義されていないフィールドが検出されました。 |
|
-55207 |
タグ・データの変換中に、ルール評価操作に失敗しました。 |
|
-55208 |
タグ・データの変換中に、検出された一致したレベル数が多すぎます。 |
107.4 DBMS_MGD_ID_UTLサブプログラムの要約
この表は、DBMS_MGD_ID_UTL
パッケージのユーティリティ・サブプログラムについて説明しています。
特に明記されていないかぎり、DBMS_MGD_ID_UTL
パッケージに定義されているプロシージャに渡されるすべての値と名前で、大/小文字は区別されません。大/小文字の区別が必要な場合は、値を二重引用符で囲んでください。
表107-4 DBMS_MGD_ID_UTLパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
既存のカテゴリに、タグ・データ変換スキームを追加します。 |
|
新規カテゴリまたは新バージョンのカテゴリを作成します。 |
|
EPCglobalタグ・データ変換(TDT)XMLをOracleタグ・データ変換XMLに変換します。 |
|
カテゴリ名およびカテゴリ・バージョンが指定された場合に、カテゴリIDを戻します。 |
|
指定したスキームに対応するセミコロン(';')区切りのすべての関連コンポーネント名を戻します。 |
|
指定したスキームに対応するセミコロン(';')区切りのエンコード(フォーマット)のリストを戻します。 |
|
現在のJavaトレース・ロギング・レベルを表す整数を戻します。 |
|
現在のPL/SQLトレース・ロギング・レベルを表す整数を戻します。 |
|
指定したカテゴリに対応するセミコロン(';')区切りのスキーム名のリストを戻します。 |
|
指定したスキームに対応するOracleタグ・データ変換XMLを戻します。 |
|
Oracle Databaseタグ・データ変換スキーマを戻します。 |
|
指定したカテゴリに対応するJavaスタックのメタデータ情報をリフレッシュします。 |
|
|
|
プロキシ・サーバーのホストおよびポートの設定を解除します。 |
|
カテゴリからタグ・データ変換スキームを削除します。 |
|
Javaロギング・レベルを設定します。 |
|
PL/SQLトレース・ロギング・レベルを設定します。 |
|
インターネット・アクセス用のプロキシ・サーバーのホストおよびポートを設定します。 |
|
Oracleタグ・データ変換スキーマに対して、入力タグ・データ変換XMLを検証します。 |
107.4.1 ADD_SCHEMEプロシージャ
このプロシージャは、既存のカテゴリにタグ・データ変換スキームを追加します。
構文
DBMS_MGD_ID_UTL.ADD_SCHEME ( category_id IN VARCHAR2, tdt_xml IN CLOB);
パラメータ
表107-5 ADD_SCHEMEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
カテゴリID。 |
|
タグ・データ変換XML。 |
例
この例は、次のいずれかのアクションを実行します。
-
カテゴリを作成します。
-
MGD_SAMPLE_CATEGORY
カテゴリにコントラクタ・スキームおよび従業員スキームを追加します。 -
MGD_SAMPLE_CATEGORY
スキームを検証します。 -
コントラクタ・スキームおよび従業員スキームのタグ変換をテストします。
-
コントラクタ・スキームを削除します。
-
コントラクタ・スキームのタグ変換のテストを実行すると、削除したコントラクタ・スキームに対して予測される例外が戻されます。
-
従業員スキームのタグ変換のテストを実行すると、予測される値が戻されます。
-
MGD_SAMPLE_CATEGORY
カテゴリを削除します。
--contents of add_scheme2.sql SET LINESIZE 160 --------------------------------------------------------------------- ---CREATE CATEGORY, ADD_SCHEME, REMOVE_SCHEME, REMOVE_CATEGORY------- --------------------------------------------------------------------- DECLARE amt NUMBER; buf VARCHAR2(32767); pos NUMBER; tdt_xml CLOB; validate_tdtxml VARCHAR2(1042); category_id VARCHAR2(256); BEGIN -- remove the testing category if already existed DBMS_MGD_ID_UTL.remove_category('MGD_SAMPLE_CATEGORY', '1.0'); -- Step 1. Create the testing category 'MGD_SAMPLE_CATEGORY', version 1.0. category_id := DBMS_MGD_ID_UTL.CREATE_CATEGORY('MGD_SAMPLE_CATEGORY', '1.0', 'Oracle', 'http://www.example.com/mgd/sample'); -- Step 2. Add contractor scheme to the category. DBMS_LOB.CREATETEMPORARY(tdt_xml, true); DBMS_LOB.OPEN(tdt_xml, DBMS_LOB.LOB_READWRITE); buf := '<?xml version="1.0" encoding="UTF-8"?> <TagDataTranslation version="0.04" date="2005-04-18T16:05:00Z" xmlns:xsi="http://www.w3.org/2001/XMLSchema" xmlns="oracle.mgd.idcode"> <scheme name="CONTRACTOR_TAG" optionKey="1" xmlns=""> <level type="URI" prefixMatch="example.contractor."> <option optionKey="1" pattern="example.contractor.([0-9]*).([0-9]*)" grammar="''example.contractor.'' contractorID ''.'' divisionID"> <field seq="1" characterSet="[0-9]*" name="contractorID"/> <field seq="2" characterSet="[0-9]*" name="divisionID"/> </option> </level> <level type="BINARY" prefixMatch="11"> <option optionKey="1" pattern="11([01]{7})([01]{6})" grammar="''11'' contractorID divisionID "> <field seq="1" characterSet="[01]*" name="contractorID"/> <field seq="2" characterSet="[01]*" name="divisionID"/> </option> </level> </scheme> </TagDataTranslation>'; amt := length(buf); pos := 1; DBMS_LOB.WRITE(tdt_xml, amt, pos, buf); DBMS_LOB.CLOSE(tdt_xml); DBMS_MGD_ID_UTL.ADD_SCHEME(category_id, tdt_xml); -- Add the employee scheme to the category. DBMS_LOB.CREATETEMPORARY(tdt_xml, true); DBMS_LOB.OPEN(tdt_xml, DBMS_LOB.LOB_READWRITE); buf := '<?xml version="1.0" encoding="UTF-8"?> <TagDataTranslation version="0.04" date="2005-04-18T16:05:00Z" xmlns:xsi="http://www.w3.org/2001/XMLSchema" xmlns="oracle.mgd.idcode"> <scheme name="EMPLOYEE_TAG" optionKey="1" xmlns=""> <level type="URI" prefixMatch="example.employee."> <option optionKey="1" pattern="example.employee.([0-9]*).([0-9]*)" grammar="''example.employee.'' employeeID ''.'' divisionID"> <field seq="1" characterSet="[0-9]*" name="employeeID"/> <field seq="2" characterSet="[0-9]*" name="divisionID"/> </option> </level> <level type="BINARY" prefixMatch="01"> <option optionKey="1" pattern="01([01]{7})([01]{6})" grammar="''01'' employeeID divisionID "> <field seq="1" characterSet="[01]*" name="employeeID"/> <field seq="2" characterSet="[01]*" name="divisionID"/> </option> </level> </scheme> </TagDataTranslation>'; amt := length(buf); pos := 1; DBMS_LOB.WRITE(tdt_xml, amt, pos, buf); DBMS_LOB.CLOSE(tdt_xml); DBMS_MGD_ID_UTL.ADD_SCHEME(category_id, tdt_xml); -- Step 3. Validate the scheme. dbms_output.put_line('Validate the MGD_SAMPLE_CATEGORY Scheme'); validate_tdtxml := DBMS_MGD_ID_UTL.validate_scheme(tdt_xml); dbms_output.put_line(validate_tdtxml); dbms_output.put_line('Length of scheme xml is: '||DBMS_LOB.GETLENGTH(tdt_xml)); -- Step 4. Test tag translation of contractor scheme. dbms_output.put_line( mgd_id.translate('MGD_SAMPLE_CATEGORY', NULL, 'example.contractor.123.45', NULL, 'BINARY')); dbms_output.put_line( mgd_id.translate('MGD_SAMPLE_CATEGORY', NULL, '111111011101101', NULL, 'URI')); -- Test tag translation of employee scheme. dbms_output.put_line( mgd_id.translate('MGD_SAMPLE_CATEGORY', NULL, 'example.employee.123.45', NULL, 'BINARY')); dbms_output.put_line( mgd_id.translate('MGD_SAMPLE_CATEGORY', NULL, '011111011101101', NULL, 'URI')); DBMS_MGD_ID_UTL.REMOVE_SCHEME(category_id, 'CONTRACTOR_TAG'); -- Step 6. Test tag translation of contractor scheme. Doesn't work any more. BEGIN dbms_output.put_line( mgd_id.translate('MGD_SAMPLE_CATEGORY', NULL, 'example.contractor.123.45', NULL, 'BINARY')); dbms_output.put_line( mgd_id.translate('MGD_SAMPLE_CATEGORY', NULL, '111111011101101', NULL, 'URI')); EXCEPTION WHEN others THEN dbms_output.put_line('Contractor tag translation failed: '||SQLERRM); END; -- Step 7. Test tag translation of employee scheme. Still works. BEGIN dbms_output.put_line( mgd_id.translate('MGD_SAMPLE_CATEGORY', NULL, 'example.employee.123.45', NULL, 'BINARY')); dbms_output.put_line( mgd_id.translate('MGD_SAMPLE_CATEGORY', NULL, '011111011101101', NULL, 'URI')); EXCEPTION WHEN others THEN dbms_output.put_line('Employee tag translation failed: '||SQLERRM); END; -- Step 8. Remove the testing category, which also removes all the associated schemes DBMS_MGD_ID_UTL.remove_category('MGD_SAMPLE_CATEGORY', '1.0'); END; / SHOW ERRORS; SQL> @add_scheme3.sql . . . Validate the MGD_SAMPLE_CATEGORY Scheme EMPLOYEE_TAG;URI,BINARY;divisionID,employeeID Length of scheme xml is: 933 111111011101101 example.contractor.123.45 011111011101101 example.employee.123.45 Contractor tag translation failed: ORA-55203: Tag data translation level not found ORA-06512: at "MGDSYS.DBMS_MGD_ID_UTL", line 54 ORA-06512: at "MGDSYS.MGD_ID", line 242 ORA-29532: Java call terminated by uncaught Java exception: oracle.mgd.idcode.exceptions.TDTLevelNotFound: Matching level not found for any configured scheme 011111011101101 example.employee.123.45 . . .
107.4.2 CREATE_CATEGORYファンクション
このファンクションは、新規カテゴリまたは新バージョンのカテゴリを作成します。
構文
DBMS_MGD_ID_UTL.CREATE_CATEGORY ( category_name IN VARCHAR2, category_version IN VARCHAR2, agency IN VARCHAR2, URI IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表107-6 CREATE_CATEGORYファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
カテゴリの名前。 |
|
カテゴリ・バージョン。 |
|
カテゴリを所有する組織。たとえば、EPCglobalはカテゴリ |
|
カテゴリの追加情報を提供するURI。 |
使用上のノート
戻り値はカテゴリIDです。
例
MGD_SAMPLE_CATEGORY
カテゴリの作成例については、「ADD_SCHEMEプロシージャ」を参照してください。
107.4.3 EPC_TO_ORACLE_SCHEMEファンクション
このファンクションは、EPCglobalタグ・データ変換(TDT)XMLをOracle Databaseタグ・データ変換XMLに変換します。
構文
DBMS_MGD_ID_UTL.EPC_TO_ORACLE_SCHEME ( xml_scheme IN CLOB) RETURN CLOB;
パラメータ
表107-7 EPC_TO_ORACLE_SCHEMEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
変換するEPCタグ・スキームの名前。 |
使用上のノート
戻り値は、Oracle Datanaseタグ・データ変換XMLを含むCLOB
の内容です。
例
次の例では、標準EPCglobalタグ・データ変換(TDT)ファイルをOracle Database TDTファイルに変換します。
--Contents of MGD_ID_DOC2.sql ---------------------------- -- EPC_TO_ORACLE_SCHEME -- ---------------------------- call DBMS_MGD_ID_UTL.set_proxy('www-proxy.example.com', '80'); BEGIN DBMS_JAVA.set_output(1000000); DBMS_OUTPUT.ENABLE(1000000); DBMS_MGD_ID_UTL.set_java_logging_level(DBMS_MGD_ID_UTL.LOGGING_LEVEL_SEVERE); END; / DECLARE epcScheme CLOB; oracleScheme CLOB; amt NUMBER; buf VARCHAR2(32767); pos NUMBER; seq BINARY_INTEGER; validate_epcscheme VARCHAR2(256); validate_oraclescheme VARCHAR2(256); BEGIN DBMS_LOB.CREATETEMPORARY(epcScheme, true); DBMS_LOB.OPEN(epcScheme, DBMS_LOB.LOB_READWRITE); buf := '<?xml version="1.0" encoding="UTF-8"?> <epcTagDataTranslation version="0.04" date="2005-04-18T16:05:00Z" epcTDSVersion="1.1r1.27" xmlns:xsi="http://www.w3.org/2001/XMLSchema" xsi:noNamespaceSchemaLocation="EpcTagDataTranslation.xsd"> <scheme name="GID-96" optionKey="1" tagLength="96"> <level type="BINARY" prefixMatch="00110101" requiredFormattingParameters="taglength"> <option optionKey="1" pattern="00110101([01]{28})([01]{24})([01]{36})" grammar="''00110101'' generalmanager objectclass serial"> <field seq="1" decimalMinimum="0" decimalMaximum="268435455" characterSet="[01]*" bitLength="28" name="generalmanager"/> <field seq="2" decimalMinimum="0" decimalMaximum="16777215" characterSet="[01]*" bitLength="24" name="objectclass"/> <field seq="3" decimalMinimum="0" decimalMaximum="68719476735" characterSet="[01]*" bitLength="36" name="serial"/> </option> </level> <level type="TAG_ENCODING" prefixMatch="urn:epc:tag:gid-96" requiredFormattingParameters="taglength"> <option optionKey="1" pattern="urn:epc:tag:gid-96:([0-9]*)\.([0-9]*)\.([0-9]*)" grammar="''urn:epc:tag:gid-96:'' generalmanager ''.'' objectclass ''.'' serial"> <field seq="1" decimalMinimum="0" decimalMaximum="268435455" characterSet="[0-9]*" name="generalmanager"/> <field seq="2" decimalMinimum="0" decimalMaximum="16777215" characterSet="[0-9]*" name="objectclass"/> <field seq="3" decimalMinimum="0" decimalMaximum="68719476735" characterSet="[0-9]*" name="serial"/> </option> </level> <level type="PURE_IDENTITY" prefixMatch="urn:epc:id:gid"> <option optionKey="1" pattern="urn:epc:id:gid:([0-9]*)\.([0-9]*)\.([0-9]*)" grammar="''urn:epc:id:gid:'' generalmanager ''.'' objectclass ''.'' serial"> <field seq="1" decimalMinimum="0" decimalMaximum="268435455" characterSet="[0-9]*" name="generalmanager"/> <field seq="2" decimalMinimum="0" decimalMaximum="16777215" characterSet="[0-9]*" name="objectclass"/> <field seq="3" decimalMinimum="0" decimalMaximum="68719476735" characterSet="[0-9]*" name="serial"/> </option> </level> <level type="LEGACY" prefixMatch="generalmanager="> <option optionKey="1" pattern="generalmanager=([0-9]*);objectclass=([0-9]*);serial=([0-9]*)" grammar="''generalmanager=''generalmanager'';objectclass=''objectclass '';serial='' serial"> <field seq="1" decimalMinimum="0" decimalMaximum="268435455" characterSet="[0-9]*" name="generalmanager"/> <field seq="2" decimalMinimum="0" decimalMaximum="16777215" characterSet="[0-9]*" name="objectclass"/> <field seq="3" decimalMinimum="0" decimalMaximum="68719476735" characterSet="[0-9]*" name="serial"/> </option> </level> </scheme> </epcTagDataTranslation>'; amt := length(buf); pos := 1; DBMS_LOB.WRITE(epcScheme, amt, pos, buf); DBMS_LOB.CLOSE(epcScheme); oracleScheme := DBMS_MGD_ID_UTL.epc_to_oracle_scheme(epcScheme); dbms_output.put_line('Length of oracle scheme xml is: '||DBMS_LOB.GETLENGTH(oracleScheme)); dbms_output.put_line(DBMS_LOB.SUBSTR(oracleScheme, DBMS_LOB.GETLENGTH(oracleScheme), 1)); dbms_output.put_line(' '); dbms_output.put_line('Validate the Oracle Scheme'); validate_oraclescheme := DBMS_MGD_ID_UTL.validate_scheme(oracleScheme); dbms_output.put_line('Validation result: '||validate_oraclescheme); END; / SHOW ERRORS; SQL> @mgd_id_doc2.sql PL/SQL procedure successfully completed. Length of oracle scheme xml is: 2475 <?xml version = '1.0' encoding = 'UTF-8'?> <TagDataTranslation version="0.04" date="2005-04-18T16:05:00Z" xmlns:xsi="http://www.w3.org/2001/XMLSchema" xmlns="oracle.mgd.idcode"><scheme name="GID-96" optionKey="1" xmlns=""><level type="BINARY" prefixMatch="00110101" requiredFormattingParameters=""><option optionKey="1" pattern="00110101([01]{28})([01]{24})([01]{36})" grammar="'00110101' generalmanager objectclass serial"><field seq="1" decimalMinimum="0" decimalMaximum="268435455" characterSet="[01]*" bitLength="28" name="generalmanager"/><field seq="2" decimalMinimum="0" decimalMaximum="16777215" characterSet="[01]*" bitLength="24" name="objectclass"/><field seq="3" decimalMinimum="0" decimalMaximum="68719476735" characterSet="[01]*" bitLength="36" name="serial"/></option></level><level type="TAG_ENCODING" prefixMatch="urn:epc:tag:gid-96" requiredFormattingParameters=""><option optionKey="1" pattern="urn:epc:tag:gid-96:([0-9]*)\.([0-9]*)\.([0-9]*)" grammar="'urn:epc:tag:gid-96:' generalmanager '.' objectclass '.' serial"><field seq="1" decimalMinimum="0" decimalMaximum="268435455" characterSet="[0-9]*" name="generalmanager"/><field seq="2" decimalMinimum="0" decimalMaximum="16777215" characterSet="[0-9]*" name="objectclass"/><field seq="3" decimalMinimum="0" decimalMaximum="68719476735" characterSet="[0-9]*" name="serial"/></option></level><level type="PURE_IDENTITY" prefixMatch="urn:epc:id:gid"><option optionKey="1" pattern="urn:epc:id:gid:([0-9]*)\.([0-9]*)\.([0-9]*)" grammar="'urn:epc:id:gid:' generalmanager '.' objectclass '.' serial"><field seq="1" decimalMinimum="0" decimalMaximum="268435455" characterSet="[0-9]*" name="generalmanager"/><field seq="2" decimalMinimum="0" decimalMaximum="16777215" characterSet="[0-9]*" name="objectclass"/><field seq="3" decimalMinimum="0" decimalMaximum="68719476735" characterSet="[0-9]*" name="serial"/></option></level><level type="LEGACY" prefixMatch="generalmanager="><option optionKey="1" pattern="generalmanager=([0-9]*);objectclass=([0-9]*);serial=([0-9]*)" grammar="'generalmanager='generalmanager';objectclass='objectclass ';serial=' serial"><field seq="1" decimalMinimum="0" decimalMaximum="268435455" characterSet="[0-9]*" name="generalmanager"/><field seq="2" decimalMinimum="0" decimalMaximum="16777215" characterSet="[0-9]*" name="objectclass"/><field seq="3" decimalMinimum="0" decimalMaximum="68719476735" characterSet="[0-9]*" name="serial"/></option></level></scheme></TagDataTranslation> Validate the Oracle Scheme Validation result: GID-96;LEGACY,TAG_ENCODING,PURE_IDENTITY,BINARY;objectclass,generalmanager,serial, PL/SQL procedure successfully completed. . . .
107.4.4 GET_CATEGORY_IDファンクション
このファンクションは、指定されたカテゴリ名およびカテゴリ・バージョンのカテゴリIDを戻します。
構文
DBMS_MGD_ID_UTL.GET_CATEGORY_ID ( category name IN VARCHAR2, category_version IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表107-8 GET_CATEGORY_IDファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
カテゴリの名前。 |
|
カテゴリ・バージョン。 |
使用上のノート
-
category_version
の値がNULLの場合、指定されたカテゴリの最新バージョンのIDが戻されます。 -
戻り値は、指定されたカテゴリ名に対応するカテゴリIDです。
例
次の例では、指定されたカテゴリ名およびバージョンのカテゴリIDを戻します。
-- Contents of get_category1.sql file SELECT DBMS_MGD_ID_UTL.get_category_id('EPC', NULL) FROM DUAL; SQL> @get_category1.sql . . . DBMS_MGD_ID_UTL.GET_CATEGORY_ID('EPC',NULL)--------------------------------------------------------------------------------1 . . .
107.4.5 GET_COMPONENTSファンクション
このファンクションは、指定したスキームに対応する、セミコロン(;)区切りのすべての関連コンポーネント名を戻します。
構文
DBMS_MGD_ID_UTL.GET_COMPONENTS ( category_id IN VARCHAR2, scheme_name IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表107-9 GET_COMPONENTSファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
カテゴリID。 |
|
スキームの名前。 |
使用上のノート
戻り値には、指定したスキームに対応するセミコロン(;)区切りのコンポーネント名が含まれます。
例
次に、コンポーネントを取得する例を示します。
--Contents of get_components.sql DECLARE id mgd_id; getcomps VARCHAR2(1000); getencodings VARCHAR2(1000); getschemenames VARCHAR2(1000); BEGIN DBMS_MGD_ID_UTL.set_java_logging_level(DBMS_MGD_ID_UTL.LOGGING_LEVEL_OFF); DBMS_MGD_ID_UTL.refresh_category(DBMS_MGD_ID_UTL.get_category_id('EPC', NULL)); getcomps := DBMS_MGD_ID_UTL.get_components(1,'SGTIN-64'); dbms_output.put_line('Component names are: ' || getcomps); getencodings := DBMS_MGD_ID_UTL.get_encodings(1,'SGTIN-64'); dbms_output.put_line('Encodings are: ' || getencodings); getschemenames := DBMS_MGD_ID_UTL.get_scheme_names(1); dbms_output.put_line('Scheme names are: ' || getschemenames); END; / SHOW ERRORS; SQL> @get_components.sql . . . Component names are: filter,gtin,companyprefixlength,companyprefix,companyprefixindex,itemref,serial Encodings are: ONS_HOSTNAME,LEGACY,TAG_ENCODING,PURE_IDENTITY,BINARY Scheme names are: GIAI-64,GIAI-96,GID-96,GRAI-64,GRAI-96,SGLN-64,SGLN-96,SGTIN-64,SGTIN-96,SSCC-64 ,SSCC-96,USDOD-64,USDOD-96 PL/SQL procedure successfully completed. . . .
107.4.6 GET_ENCODINGSファンクション
このファンクションは、指定したスキームに対応するセミコロン(;)区切りのエンコード(フォーマット)のリストを戻します。
構文
DBMS_MGD_ID_UTL.GET_ENCODINGS ( category_id IN VARCHAR2, scheme_name IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表107-10 GET_ENCODINGSファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
カテゴリID。 |
|
スキームの名前。 |
使用上のノート
戻り値には、指定したスキームに対応するセミコロン(;)区切りのエンコーディングが含まれます。
例
例については、「GET_COMPONENTSファンクション」を参照してください。
107.4.7 GET_JAVA_LOGGING_LEVELファンクション
このファンクションは、現在のトレース・ロギング・レベルを表す整数を戻します。
構文
DBMS_MGD_ID_UTL.GET_JAVA_LOGGING_LEVEL RETURN INTEGER;
使用上のノート
戻り値は、現在のJavaロギング・レベルを示す整数値です。
例
次の例では、Javaロギング・レベルを取得します。
--Contents of getjavalogginglevel.sql DECLARE loglevel NUMBER; BEGIN DBMS_MGD_ID_UTL.set_java_logging_level(DBMS_MGD_ID_UTL.LOGGING_LEVEL_OFF); loglevel := DBMS_MGD_ID_UTL.get_java_logging_level(); dbms_output.put_line('Java logging level = ' ||loglevel); END; / SHOW ERRORS; SQL> @getjavalogginglevel.sql . . . Java logging level = 0 PL/SQL procedure successfully completed. . . .
107.4.8 GET_PLSQL_LOGGING_LEVELファンクション
このファンクションは、現在のPL/SQLトレース・ロギング・レベルを表す整数を戻します。
構文
DBMS_MGD_ID_UTL.GET_PLSQL_LOGGING_LEVEL RETURN INTEGER; PRAGMA restrict_references(get_plsql_logging_level, WNDS);
使用上のノート
戻り値は、現在のPL/SQLロギング・レベルを示す整数値です。
例
次の例では、PL/SQLロギング・レベルを取得します。
--Contents of getplsqllogginglevel.sql DECLARE loglevel NUMBER; BEGIN DBMS_MGD_ID_UTL.set_plsql_logging_level(0); loglevel := DBMS_MGD_ID_UTL.get_plsql_logging_level(); dbms_output.put_line('PL/SQL logging level = ' ||loglevel); END; / SHOW ERRORS; SQL> @getplsqllogginglevel.sql . . . PL/SQL logging level = 0 PL/SQL procedure successfully completed. . . .
107.4.9 GET_SCHEME_NAMESファンクション
このファンクションは、指定したカテゴリに対応するセミコロン(;)区切りのスキーム名のリストを戻します。
構文
DBMS_MGD_ID_UTL.GET_SCHEME_NAMES ( category_id IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表107-11 GET_SCHEME_NAMESファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
カテゴリID。 |
使用上のノート
戻り値には、指定されたカテゴリIDに対応するスキーム名が含まれます。
例
例については、「GET_COMPONENTSファンクション」を参照してください。
107.4.10 GET_TDT_XMLファンクション
このファンクションは、指定したスキームに対応するOracle Databaseタグ・データ変換XMLを戻します。
構文
DBMS_MGD_ID_UTL.GET_TDT_XML ( category_id IN VARCHAR2, scheme_name IN VARCHAR2) RETURN CLOB;
パラメータ
表107-12 GET_TDT_XMLファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
カテゴリID。 |
|
スキームの名前。 |
使用上のノート
戻り値には、指定したスキームに対応するOracle Databaseタグ・データ変換XMLが含まれます。
例
次の例では、指定したスキームに対応するOracle Database TDT XMLを取得します。
--Contents of get_tdtxml.sql DECLARE gettdtxml CLOB; BEGIN gettdtxml := DBMS_MGD_ID_UTL.get_tdt_xml(1,'SGTIN-64'); dbms_output.put_line('Length of tdt XML is '||DBMS_LOB.GETLENGTH(gettdtxml)); dbms_output.put_line(DBMS_LOB.SUBSTR(gettdtxml, DBMS_LOB.GETLENGTH(gettdtxml), 1)); END; / SHOW ERRORS; SQL> @get_tdtxml.sql . . . Length of tdt XML is 22884 <?xml version = '1.0' encoding = "UTF-8"?> <TagDataTranslation version="0.04" date="2005-04-18T16:05:00Z" xmlns:xsi="http://www.w3.org/2001/XMLSchema" xmlns="oracle.mgd.idcode"><scheme name="SGTIN-64" optionKey="companyprefixlength" xmlns=""> <level type="BINARY" prefixMatch="10" requiredFormattingParameters="filter"> <option optionKey="12" pattern="10([01]{3})([01]{14})([01]{20})([01]{25})" grammar="'10' filter companyprefixindex itemref serial"> <field seq="1" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitLength="3" length="1" padChar="0" padDir="LEFT" name="filter"/> <field seq="2" decimalMinimum="0" decimalMaximum="16383" characterSet="[01]*" bitLength="14" name="companyprefixindex"/> <field seq="3" decimalMinimum="0" decimalMaximum="9" characterSet="[01]*" bitLength="20" length="1" padChar="0" padDir="LEFT" name="itemref"/> <field seq="4" decimalMinimum="0" decimalMaximum="33554431" characterSet="[01]*" bitLength="25" name="serial"/> . . . <field seq="1" decimalMinimum="0" decimalMaximum="9999999" characterSet="[0-9]*" length="7" padChar="0" padDir="LEFT" name="itemref"/> <field seq="2" decimalMinimum="0" decimalMaximum="999999" characterSet="[0-9]*" length="6" padChar="0" padDir="LEFT" name="companyprefix"/> </option> </level> </scheme></TagDataTranslation> PL/SQL procedure successfully completed. . . .
107.4.11 GET_VALIDATORファンクション
このファンクションは、Oracle Databaseタグ・データ変換スキーマを戻します。
構文
DBMS_MGD_ID_UTL.GET_VALIDATOR RETURN CLOB;
使用上のノート
戻り値には、Oracle Databaseタグ・データ変換スキーマが含まれます。
例
この例では、Oracle Database TDTスキーマを戻します。
--Contents of get_validator.sql DECLARE getvalidator CLOB; BEGIN getvalidator := DBMS_MGD_ID_UTL.get_validator; dbms_output.put_line('Length of validated oracle scheme xml is '||DBMS_LOB.GETLENGTH(getvalidator)); dbms_output.put_line(DBMS_LOB.SUBSTR(getvalidator, DBMS_LOB.GETLENGTH(getvalidator), 1)); END; / SHOW ERRORS; SQL> @get_validator.sql . . . Length of validated oracle scheme xml is 5780 <?xml version="1.0" encoding="UTF-8"?> <xsd:schema targetNamespace="oracle.mgd.idcode" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tdt="oracle.mgd.idcode" elementFormDefault="unqualified" attributeFormDefault="unqualified" version="1.0"> <xsd:annotation> <xsd:documentation> <![CDATA[ <epcglobal:copyright>Copyright ?2004 Epcglobal Inc., All Rights Reserved.</epcglobal:copyright> <epcglobal:disclaimer>EPCglobal Inc., its members, officers, directors, employees, or agents shall not be liable for any injury, loss, damages, financial or otherwise, arising from, related to, or caused by the use of this document. The use of said document shall constitute your express consent to the foregoing exculpation.</epcglobal:disclaimer> <epcglobal:specification>Tag Data Translation (TDT) version 1.0</epcglobal:specification> ]> </xsd:documentation> </xsd:annotation> <xsd:simpleType name="LevelTypeList"> <xsd:restriction base="xsd:string"> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="TagLengthList" <xsd:restriction base="xsd:string"> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="SchemeNameList"> <xsd:restriction base="xsd:string"> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="InputFormatList"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="BINARY"/> <xsd:enumeration value="STRING"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="ModeList"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="EXTRACT"/> <xsd:enumeration value="FORMAT"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="CompactionMethodList"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="32-bit"/> <xsd:enumeration value="16-bit"/> <xsd:enumeration value="8-bit"/> <xsd:enumeration value="7-bit"/> <xsd:enumeration value="6-bit"/> <xsd:enumeration value="5-bit"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="PadDirectionList"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="LEFT"/> <xsd:enumeration value="RIGHT"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="Field"> <xsd:attribute name="seq" type="xsd:integer" use="required"/> <xsd:attribute name="name" type="xsd:string" use="required"/> <xsd:attribute name="bitLength" type="xsd:integer"/> <xsd:attribute name="characterSet" type="xsd:string" use="required"/> <xsd:attribute name="compaction" type="tdt:CompactionMethodList"/> <xsd:attribute name="compression" type="xsd:string"/> <xsd:attribute name="padChar" type="xsd:string"/> <xsd:attribute name="padDir" type="tdt:PadDirectionList"/> <xsd:attribute name="decimalMinimum" type="xsd:long"/> <xsd:attribute name="decimalMaximum" type="xsd:long"/> <xsd:attribute name="length" type="xsd:integer"/> </xsd:complexType> <xsd:complexType name="Option"> <xsd:sequence> <xsd:element name="field" type="tdt:Field" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="optionKey" type="xsd:string" use="required"/> <xsd:attribute name="pattern" type="xsd:string"/> <xsd:attribute name="grammar" type="xsd:string" use="required"/> </xsd:complexType> <xsd:complexType name="Rule"> <xsd:attribute name="type" type="tdt:ModeList" use="required"/> <xsd:attribute name="inputFormat" type="tdt:InputFormatList" use="required"/> <xsd:attribute name="seq" type="xsd:integer" use="required"/> <xsd:attribute name="newFieldName" type="xsd:string" use="required"/> <xsd:attribute name="characterSet" type="xsd:string" use="required"/> <xsd:attribute name="padChar" type="xsd:string"/> <xsd:attribute name="padDir" type="tdt:PadDirectionList"/> <xsd:attribute name="decimalMinimum" type="xsd:long"/> <xsd:attribute name="decimalMaximum" type="xsd:long"/> <xsd:attribute name="length" type="xsd:string"/> <xsd:attribute name="function" type="xsd:string" use="required"/> <xsd:attribute name="tableURI" type="xsd:string"/> <xsd:attribute name="tableParams" type="xsd:string"/> <xsd:attribute name="tableXPath" type="xsd:string"/> <xsd:attribute name="tableSQL" type="xsd:string"/> </xsd:complexType> <xsd:complexType name="Level"> <xsd:sequence> <xsd:element name="option" type="tdt:Option" minOccurs="1" maxOccurs="unbounded"/> <xsd:element name="rule" type="tdt:Rule" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="type" type="tdt:LevelTypeList" use="required"/> <xsd:attribute name="prefixMatch" type="xsd:string" use="optional"/> <xsd:attribute name="requiredParsingParameters" type="xsd:string"/> <xsd:attribute name="requiredFormattingParameters" type="xsd:string"/> </xsd:complexType> <xsd:complexType name="Scheme"> <xsd:sequence> <xsd:element name="level" type="tdt:Level" minOccurs="1" maxOccurs="5"/> </xsd:sequence> <xsd:attribute name="name" type="tdt:SchemeNameList" use="required"/> <xsd:attribute name="optionKey" type="xsd:string" use="required"/> <xsd:attribute name="tagLength" type="tdt:TagLengthList" use="optional"/> </xsd:complexType> <xsd:complexType name="TagDataTranslation"> <xsd:sequence> <xsd:element name="scheme" type="tdt:Scheme" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="version" type="xsd:string" use="required"/> <xsd:attribute name="date" type="xsd:dateTime" use="required"/> </xsd:complexType> <xsd:element name="TagDataTranslation" type="tdt:TagDataTranslation"/> </xsd:schema> PL/SQL procedure successfully completed. . . .
107.4.12 REFRESH_CATEGORYファンクション
このファンクションは、指定したカテゴリに対応するJavaスタックのメタデータ情報をリフレッシュします。
このファンクションは、MGD_ID
ファンクションを使用する前にコールする必要があります。
構文
DBMS_MGD_ID_UTL.REFRESH_CATEGORY ( category_id IN VARCHAR2);
パラメータ
表107-13 REFRESH_CATEGORYファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
カテゴリID。 |
例
次の例では、EPCカテゴリIDのメタデータ情報をリフレッシュします。
--Contents of tostring3.sql call DBMS_MGD_ID_UTL.set_proxy('www-proxy.example.com', '80'); DECLARE id MGD_ID; BEGIN DBMS_MGD_ID_UTL.set_java_logging_level(DBMS_MGD_ID_UTL.LOGGING_LEVEL_OFF); DBMS_MGD_ID_UTL.refresh_category(DBMS_MGD_ID_UTL.get_category_id('EPC', NULL)); dbms_output.put_line('..Testing to_string'); DBMS_OUTPUT.PUT_LINE('test to_string'); id := mgd_id('EPC', NULL, 'urn:epc:id:gid:0037000.30241.1041970', 'scheme=GID-96'); DBMS_OUTPUT.PUT_LINE('mgd_id object as a string'); DBMS_OUTPUT.PUT_LINE(id.to_string); END; / SHOW ERRORS; call DBMS_MGD_ID_UTL.remove_proxy(); SQL> @tostring3.sql ..Testing to_string test to_string mgd_id object as a string category_id =1;schemes = GID-96;objectclass = 30241;generalmanager = 0037000;scheme = GID-96;1 = 1;serial = 1041970 PL/SQL procedure successfully completed.
107.4.13 REMOVE_CATEGORYプロシージャ
このプロシージャは、関連するすべてのTDT XMLを含むカテゴリを削除します。
このプロシージャはオーバーロードされています。複数の機能を構文形式ごとに、定義とともに示します。
構文
指定したカテゴリIDに基づいてカテゴリを削除します。
DBMS_MGD_ID_UTL.REMOVE_CATEGORY ( category_id IN VARCHAR2);
指定したカテゴリ名およびカテゴリ・バージョンに基づいてカテゴリを削除します。
DBMS_MGD_ID_UTL.REMOVE_CATEGORY ( category_name IN VARCHAR2, category_version IN VARCHAR2);
パラメータ
表107-14 REMOVE_CATEGORYプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
カテゴリID。 |
|
カテゴリの名前。 |
|
カテゴリ・バージョン。 |
使用上のノート
category_version
の値がNULLの場合、指定したカテゴリのすべてのバージョンが削除されます。
例
カテゴリを削除する例については、「ADD_SCHEMEプロシージャ」を参照してください。
107.4.14 REMOVE_PROXYプロシージャ
このプロシージャは、プロキシ・サーバーのホストおよびポートの設定を解除します。
構文
DBMS_MGD_ID_UTL.REMOVE_PROXY;
例
例については、「REFRESH_CATEGORYファンクション」を参照してください。
107.4.15 REMOVE_SCHEMEプロシージャ
このプロシージャは、カテゴリからタグ・データ変換スキームを削除します。
構文
DBMS_MGD_ID_UTL.REMOVE_SCHEME ( category_id IN VARCHAR2, scheme_name IN VARCHAR2);
パラメータ
表107-15 REMOVE_SCHEMEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
カテゴリID。 |
|
スキームの名前。 |
例
スキームを削除する例については、「ADD_SCHEMEプロシージャ」を参照してください。
107.4.16 SET_JAVA_LOGGING_LEVELプロシージャ
このプロシージャは、Javaトレース・ロギング・レベルを設定します。
構文
DBMS_MGD_ID_UTL.SET_JAVA_LOGGING_LEVEL ( logginglevel IN INTEGER);
パラメータ
表107-16 SET_JAVA_LOGGING_LEVELプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ロギング・レベル。Javaロギング・レベルは、次の値(降順)のいずれかです。
|
例
例については、「GET_JAVA_LOGGING_LEVELファンクション」を参照してください。
107.4.17 SET_PLSQL_LOGGING_LEVELプロシージャ
このプロシージャは、PL/SQLトレース・ロギング・レベルを設定します。
構文
DBMS_MGD_ID_UTL.SET_PLSQL_LOGGING_LEVEL ( level IN INTEGER); PRAGMA restrict_references(set_plsql_logging_level, WNDS);
パラメータ
表107-17 SET_PLSQL_LOGGING_LEVELプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ロギング・レベル。PL/SQLロギング・レベルは、次の値(降順)のいずれかです。
|
例
例については、「GET_PLSQL_LOGGING_LEVELファンクション」を参照してください。
107.4.18 SET_PROXYプロシージャ
このプロシージャは、インターネット・アクセス用のプロキシ・サーバーのホストおよびポートを設定します。
データベース・サーバーがプロキシ・サーバーを使用してインターネットにアクセスする場合は、このプロシージャをコールする必要があります。一部のルールでは、企業の同一キー索引を取得する場合にObject Naming Service(ONS)表を検索する必要があるため、インターネット・アクセスが必要です。
インターネット・アクセスが必要なルールを含まないスキームのみを使用している場合は、このプロシージャをコールする必要はありません。
構文
DBMS_MGD_ID_UTL.SET_PROXY ( proxt_host IN VARCHAR2, proxy_port IN VARCHAR2);
パラメータ
表107-18 SET_PROXYプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ホストの名前。 |
|
ホストのポート番号。 |
例
例については、「REFRESH_CATEGORYファンクション」を参照してください。
107.4.19 VALIDATE_SCHEMEファンクション
このファンクションは、Oracle Databaseタグ・データ変換スキーマに対して、入力タグ・データ変換XMLを検証します。
構文
DBMS_MGD_ID_UTL.VALIDATE_SCHEME ( xml_scheme IN CLOB) RETURN VARCHAR2;
パラメータ
表107-19 VALIDATE_SCHEMEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
検証するスキーム。 |
使用上のノート
戻り値には、指定されたスキームに対応するコンポーネント名が含まれます。
例
例については、「ADD_SCHEMEプロシージャ」または「EPC_TO_ORACLE_SCHEMEファンクション」を参照してください。