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ファンクション」を参照してください。