DBMS_MGD_ID_UTL
パッケージには、次に示す複数のユーティリティ・サブプログラムを構成する様々なファンクションおよびプロシージャが含まれています。
JavaおよびPL/SQLのロギング・レベルを設定および取得するロギング・ユーティリティ
プロキシ・サーバーのホストとポートを設定および設定解除するための2つのプロシージャで構成されるプロキシ・ユーティリティ
メタデータの管理に使用されるファンクションおよびプロシージャで構成されるメタデータ・ユーティリティ
関連項目: 詳細は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』を参照してください。 |
この章では、これらのユーティリティ・サブプログラムについてそれぞれ説明します。次の項目が含まれています。
この章の例では、次のコマンド・セットを実行してから各スクリプトを実行することを想定しています。
SQL> connect / as sysdba;
Connected.
SQL> create user mgduser identified by mgduser;
SQL> grant connect, resource to mgduser;
SQL> connect mgduser
Enter password: mgduserpassword
Connected.
SQL> set serveroutput on;
DBMS_MGD_ID_UTLでは、表75-1に示された定数を使用します。
表75-1 DBMS_MGD_ID_UTLの定数
名前 | 値 |
---|---|
インストールされたカテゴリIDおよび名前 |
|
EPC_ENCODING_CATEGORY_ID |
1 |
EPC_ENCODING_CATEGORY_NAME |
EPC |
ロギング・レベル |
|
LOGGING_LEVEL_OFF |
0 |
LOGGING_LEVEL_SEVERE |
1 |
LOGGING_LEVEL_WARNING |
2 |
LOGGING_LEVEL_INFO |
3 |
LOGGING_LEVEL_FINE |
4 |
LOGGING_LEVEL_FINER |
5 |
LOGGING_LEVEL_FINEST |
6 |
LOGGING_LEVEL_ALL |
7 |
DBMS_MGD_ID_UTL
は、表75-2に示された例外を使用します。
表75-2 DBMS_MGD_ID_UTLパッケージで発生する例外
名前 | エラー・コード | 説明 |
---|---|---|
TDTJavaException |
-55200 |
タグ・データの変換中に、Java例外が発生しました。 |
TDTCategoryNotFound |
-55201 |
指定したカテゴリは検出されていません。 |
TDTSchemeNotFound |
-55202 |
タグ・データの変換中に、指定したスキームが検出されていません。 |
TDTLevelNotFound |
-55203 |
タグ・データの変換中に、指定したレベルが検出されていません。 |
TDTOptionNotFound |
-55204 |
タグ・データの変換中に、指定したオプションが検出されていません。 |
TDTFieldValidationException |
-55205 |
タグ・データの変換中に、フィールドの検証操作に失敗しました。 |
TDTUndefinedField |
-55206 |
タグ・データの変換中に、定義されていないフィールドが検出されました。 |
TDTRuleEvaluationFailed |
-55207 |
タグ・データの変換中に、ルール評価操作に失敗しました。 |
TDTTooManyMatchingLevels |
-55208 |
タグ・データの変換中に、検出された一致したレベル数が多すぎます。 |
表75-3に、DBMS_MGD_ID_UTL
パッケージのユーティリティ・サブプログラムを示します。
特に明記されていないかぎり、DBMS_MGD_ID_UTL
パッケージに定義されているプロシージャに渡されるすべての値と名前で、大/小文字は区別されません。大/小文字の区別を保つには、値を二重引用符で囲んでください。
表75-3 DBMS_MGD_ID_UTLパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
|
既存のカテゴリに、タグ・データ変換スキームを追加します。 |
|
新規カテゴリまたは新バージョンのカテゴリを作成します。 |
|
EPCglobalタグ・データ変換(TDT)XMLをOracleタグ・データ変換XMLに変換します。 |
|
カテゴリ名およびカテゴリ・バージョンが指定された場合に、カテゴリIDを戻します。 |
|
指定したスキームに対応するセミコロン(';')区切りのすべての関連コンポーネント名を戻します。 |
|
指定したスキームに対応するセミコロン(';')区切りのエンコード(フォーマット)のリストを戻します。 |
|
現在のJavaトレース・ロギング・レベルを表す整数を戻します。 |
GET_PLSQL_LOGGING_LEVELファンクション |
現在のPL/SQLトレース・ロギング・レベルを表す整数を戻します。 |
|
指定したカテゴリに対応するセミコロン(';')区切りのスキーム名のリストを戻します。 |
|
指定したスキームに対応するOracleタグ・データ変換XMLを戻します。 |
|
Oracleタグ・データ変換スキーマを戻します。 |
|
指定したカテゴリに対応するJavaスタックのメタデータ情報をリフレッシュします。 |
|
|
|
プロキシ・サーバーのホストおよびポートの設定を解除します。 |
|
カテゴリからタグ・データ変換スキームを削除します。 |
|
Javaロギング・レベルを設定します。 |
|
PL/SQLトレース・ロギング・レベルを設定します。 |
|
インターネット・アクセス用のプロキシ・サーバーのホストおよびポートを設定します。 |
|
Oracleタグ・データ変換スキーマに対して、入力タグ・データ変換XMLを検証します。 |
このプロシージャは、既存のカテゴリにタグ・データ変換スキームを追加します。
構文
procedure DBMS_MGD_ID_UTL.ADD_SCHEME ( category_id IN VARCHAR2, tdt_xml IN CLOB);
パラメータ
使用上の注意
なし
例
次の例では、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'); -- 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.oracle.com/mgd/sample'); -- 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="mycompany.contractor."> <option optionKey="1" pattern="mycompany.contractor.([0-9]*).([0-9]*)" grammar="''mycompany.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 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="mycompany.employee."> <option optionKey="1" pattern="mycompany.employee.([0-9]*).([0-9]*)" grammar="''mycompany.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); -- 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)); -- test tag translation of contractor scheme dbms_output.put_line( mgd_id.translate('MGD_SAMPLE_CATEGORY', NULL, 'mycompany.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, 'mycompany.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'); -- Test tag translation of contractor scheme. Doesn't work any more. BEGIN dbms_output.put_line( mgd_id.translate('MGD_SAMPLE_CATEGORY', NULL, 'mycompany.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; -- Test tag translation of employee scheme. Still works. BEGIN dbms_output.put_line( mgd_id.translate('MGD_SAMPLE_CATEGORY', NULL, 'mycompany.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; -- 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 mycompany.contractor.123.45 011111011101101 mycompany.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 mycompany.employee.123.45 . . .
このファンクションは、新規カテゴリまたは新バージョンのカテゴリを作成します。
構文
function DBMS_MGD_ID_UTL.CREATE_CATEGORY ( category_name IN VARCHAR2, category_version IN VARCHAR2, agency IN VARCHAR2, URI IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表75-5 CREATE_CATEGORYファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
カテゴリの名前。 |
|
カテゴリ・バージョン。 |
|
カテゴリを所有する組織。たとえば、EPCglobalはカテゴリ'EPC'を所有します。 |
|
カテゴリの追加情報を提供するURI。 |
使用上の注意
戻り値はカテゴリIDです。
例
MGD_SAMPLE_CATEGORYカテゴリの作成例については、「ADD_SCHEMEプロシージャ」を参照してください。
このファンクションは、EPCglobalタグ・データ変換(TDT)XMLをOracleタグ・データ変換XMLに変換します。
構文
function DBMS_MGD_ID_UTL.EPC_TO_ORACLE_SCHEME ( xml_scheme IN CLOB) RETURN CLOB;
パラメータ
使用上の注意
戻り値は、Oracleタグ・データ変換XMLを含むCLOBの内容です。
例
次の例では、標準EPCglobalタグ・データ変換(TDT)ファイルをOracle TDTファイルに変換します。
--Contents of MGD_ID_DOC2.sql ---------------------------- -- EPC_TO_ORACLE_SCHEME -- ---------------------------- call DBMS_MGD_ID_UTL.set_proxy('www-proxy.us.oracle.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. . . .
このファンクションは、指定されたカテゴリ名およびカテゴリ・バージョンのカテゴリIDを戻します。
構文
function DBMS_MGD_ID_UTL.GET_CATEGORY_ID ( category name IN VARCHAR2, category_version IN VARCHAR2) RETURN VARCHAR2;
パラメータ
使用上の注意
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 . . .
このファンクションは、指定したスキームに対応する、セミコロン(';')区切りのすべての関連コンポーネント名を戻します。
構文
function DBMS_MGD_ID_UTL.GET_COMPONENTS ( category_id IN VARCHAR2, scheme_name IN VARCHAR2) RETURN VARCHAR2;
パラメータ
使用上の注意
戻り値には、指定したスキームに対応するセミコロン(';')区切りのコンポーネント名が含まれます。
例
次に、コンポーネントを取得する例を示します。
--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. . . .
このファンクションは、指定したスキームに対応するセミコロン(';')区切りのエンコード(フォーマット)のリストを戻します。
構文
function DBMS_MGD_ID_UTL.GET_ENCODINGS ( category_id IN VARCHAR2, scheme_name IN VARCHAR2) RETURN VARCHAR2;
パラメータ
使用上の注意
戻り値には、指定したスキームに対応するセミコロン(';')区切りのエンコーディングが含まれます。
例
例については、「GET_COMPONENTSファンクション」を参照してください。
このファンクションは、現在のJavaトレース・ロギング・レベルを表す整数を戻します。
構文
function 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. . . .
このファンクションは、現在のPL/SQLトレース・ロギング・レベルを表す整数を戻します。
構文
function 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. . . .
このファンクションは、指定したカテゴリに対応するセミコロン(';')区切りのスキーム名のリストを戻します。
構文
function DBMS_MGD_ID_UTL.GET_SCHEME_NAMES ( category_id IN VARCHAR2) RETURN VARCHAR2;
パラメータ
使用上の注意
戻り値には、指定されたカテゴリIDに対応するスキーム名が含まれます。
例
例については、「GET_COMPONENTSファンクション」を参照してください。
このファンクションは、指定したスキームに対応するOracleタグ・データ変換XMLを戻します。
構文
function DBMS_MGD_ID_UTL.GET_TDT_XML ( category_id IN VARCHAR2, scheme_name IN VARCHAR2) RETURN CLOB;
パラメータ
使用上の注意
戻り値には、指定したスキームに対応するOracleタグ・データ変換XMLが含まれます。
例
次の例では、指定したスキームに対応するOracle 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. . . .
このファンクションは、Oracleタグ・データ変換スキーマを戻します。
構文
function DBMS_MGD_ID_UTL.GET_VALIDATOR RETURN CLOB;
パラメータ
なし
使用上の注意
戻り値には、Oracleタグ・データ変換スキーマが含まれます。
例
この例では、Oracle 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. . . .
このファンクションは、指定したカテゴリに対応するJavaスタックのメタデータ情報をリフレッシュします。 このファンクションは、MGD_IDファンクションを使用する前にコールする必要があります。
構文
function DBMS_MGD_ID_UTL.REFRESH_CATEGORY ( category_id IN VARCHAR2);
パラメータ
使用上の注意
なし
例
次の例では、EPCカテゴリIDのメタデータ情報をリフレッシュします。
--Contents of tostring3.sql call DBMS_MGD_ID_UTL.set_proxy('www-proxy.us.oracle.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.
このプロシージャは、関連するすべてのTDT XMLを含むカテゴリを削除します。このプロシージャはオーバーロードされています。複数の機能を構文形式ごとに、定義とともに示します。
構文
指定したカテゴリIDに基づいてカテゴリを削除します。
procedure DBMS_MGD_ID_UTL.REMOVE_CATEGORY ( category_id IN VARCHAR2);
指定したカテゴリ名およびカテゴリ・バージョンに基づいてカテゴリを削除します。
procedure DBMS_MGD_ID_UTL.REMOVE_CATEGORY ( category_name IN VARCHAR2, category_version IN VARCHAR2);
パラメータ
表75-13 REMOVE_CATEGORYプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
カテゴリID。 |
|
カテゴリの名前。 |
|
カテゴリ・バージョン。 |
使用上の注意
category_version
の値がNULLの場合、指定したカテゴリのすべてのバージョンが削除されます。
例
カテゴリを削除する例については、「ADD_SCHEMEプロシージャ」を参照してください。
このプロシージャは、プロキシ・サーバーのホストおよびポートの設定を解除します。
構文
procedure DBMS_MGD_ID_UTL.REMOVE_PROXY;
パラメータ
なし
使用上の注意
なし
例
例については、「REFRESH_CATEGORYファンクション」を参照してください。
このプロシージャは、カテゴリからタグ・データ変換スキームを削除します。
構文
procedure DBMS_MGD_ID_UTL.REMOVE_SCHEME ( category_id IN VARCHAR2, scheme_name IN VARCHAR2);
パラメータ
使用上の注意
なし
例
スキームを削除する例については、「ADD_SCHEMEプロシージャ」を参照してください。
このプロシージャは、Javaトレース・ロギング・レベルを設定します。
構文
procedure DBMS_MGD_ID_UTL.SET_JAVA_LOGGING_LEVEL ( logginglevel IN INTEGER);
パラメータ
表75-15 SET_JAVA_LOGGING_LEVELプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ロギング・レベル。Javaロギング・レベルは、次の値(降順)のいずれかです。
|
使用上の注意
なし
例
例については、「GET_JAVA_LOGGING_LEVELファンクション」を参照してください。
このプロシージャは、PL/SQLトレース・ロギング・レベルを設定します。
構文
procedure DBMS_MGD_ID_UTL.SET_PLSQL_LOGGING_LEVEL ( level IN INTEGER); PRAGMA restrict_references(set_plsql_logging_level, WNDS);
パラメータ
表75-16 SET_PLSQL_LOGGING_LEVELプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ロギング・レベル。PL/SQLロギング・レベルは、次の値(降順)のいずれかです。
|
使用上の注意
なし
例
例については、「GET_PLSQL_LOGGING_LEVELファンクション」を参照してください。
このプロシージャは、インターネット・アクセス用のプロキシ・サーバーのホストおよびポートを設定します。データベース・サーバーがプロキシ・サーバーを使用してインターネットにアクセスする場合は、このプロシージャをコールする必要があります。一部のルールでは、企業の同一キー索引を取得する場合にObject Naming Service(ONS)表を検索する必要があるため、インターネット・アクセスが必要です。
インターネット・アクセスが必要なルールを含まないスキームのみを使用している場合は、このプロシージャをコールする必要はありません。
構文
procedure DBMS_MGD_ID_UTL.SET_PROXY ( proxt_host IN VARCHAR2, proxy_port IN VARCHAR2);
パラメータ
使用上の注意
なし
例
例については、「REFRESH_CATEGORYファンクション」を参照してください。
このファンクションは、Oracleタグ・データ変換スキーマに対して、入力タグ・データ変換XMLを検証します。
構文
function DBMS_MGD_ID_UTL.VALIDATE_SCHEME ( xml_scheme IN CLOB) RETURN VARCHAR2;
パラメータ
使用上の注意
戻り値には、指定されたスキームに対応するコンポーネント名が含まれます。
例
例については、「ADD_SCHEMEプロシージャ」または「EPC_TO_ORACLE_SCHEMEファンクション」を参照してください。