日本語PDF

291 MGD_IDパッケージ・タイプ

MGD_IDパッケージは、サポートされるエンコーディング・タイプとして、EPCビット・エンコーディングの標準ファミリを使用した現在の無線自動識別(RFID)タグをサポートする拡張可能なフレームワークを提供します。また、MGD_IDパッケージは、現在のEPC標準(EPC v1.1仕様)に含まれていない新規および進化中のタグ・エンコーディングもサポートします。

MGD_IDパッケージには、事前定義された複数のタイプが含まれています。

参照:

詳細は、『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;

291.1 MGD_IDパッケージ・タイプのセキュリティ・モデル

catmgd.sqlスクリプトを実行してDBMS_MGD_ID_UTLパッケージをロードし、必要な識別コード・パッケージのスキーマ・オブジェクトをMGDSYSスキーマに作成します。

MGD_IDは、MGDSYS所有のオブジェクト・タイプです。無名PL/SQLブロックからコールされたすべてのMGD_IDサブプログラムは、現行のユーザーの権限を使用して実行されます。

MGD_IDオブジェクト・タイプとそのサブプログラムを使用するには、ユーザーに接続ロールとリソース・ロールが付与されている必要があります。

PUBLICには、このADT(MGD_ID)に対するEXECUTE権限が付与されます。

このADT(MGD_ID)に対して同じ名前のパブリック・シノニムが作成されます。

291.2 タイプの要約

この表では、MGD_IDパッケージのオブジェクト・タイプをリストし、簡単に説明します。

表291-1 MGD_IDパッケージのオブジェクト・タイプ

オブジェクト・タイプ名 説明

MGD_ID_COMPONENTオブジェクト・タイプ

コンポーネントを定義する名前/値ペアの属性を指定するデータ・タイプ。

MGD_ID_COMPONENT_VARRAYオブジェクト・タイプ

識別コード・タイプのオブジェクトを作成するための2つのコンストラクタ・ファンクションで使用される名前/値の属性のペアとして、最大128のコンポーネントのリストを指定するデータ・タイプ。

MGD_IDオブジェクト・タイプ

この識別コードのコード・カテゴリのカテゴリ識別子とそのコンポーネント・リストを指定するMGD_IDオブジェクトを表します。

291.2.1 MGD_ID_COMPONENTオブジェクト・タイプ

MGD_ID_COMPONENTタイプは、コンポーネントを定義する名前/値ペアの属性を指定するためのデータ・タイプです。

構文

MGD_ID_COMPONENT as object (name  VARCHAR2(256),
                            value VARCHAR2(1024));

属性

表291-2 MGD_ID_COMPONENTの属性

属性 説明

name

コンポーネントの名前。

value

文字としてのコンポーネントの値。

例については、「MGD_IDコンストラクタ・ファンクション」を参照してください。

291.2.2 MGD_ID_COMPONENT_VARRAYオブジェクト・タイプ

MGD_ID_COMPONENT_VARRAYタイプは、コンポーネント・リストを使用して製品コード・タイプのオブジェクトを作成する場合に、2つのコンストラクタ・ファンクションで使用される名前/値の属性のペアとして、コンポーネント・リスト(最大128)を指定するためのデータ・タイプです。

構文

MGD_ID_COMPONENT_VARRAY is VARRAY (128) of MGD_ID_COMPONENT;

例については、「MGD_IDコンストラクタ・ファンクション」を参照してください。

291.2.3 MGD_IDオブジェクト・タイプ

MGD_IDタイプは、RFIDアプリケーション内での識別コードを表します。このタイプは、標準のEPCビット・エンコーディングを使用するRFIDタグ、およびEPC標準に含まれないタグ・エンコーディングを使用するRFIDタグを表します。

構文

MGD_ID as object (category_id  VARCHAR2(256),
                  components   MGD_ID_COMPONENT_VARRAY);

属性

表291-3 MGD_IDオブジェクト・タイプの属性

属性 説明

category_id

このコードのコード・カテゴリのカテゴリ識別子。

components

名前/値属性としてのコンポーネントのリスト。

メソッド

表291-5は、MGD_IDオブジェクト・タイプのメソッドについて説明しています。

表291-4 MGD_IDのメソッド

メソッド 説明

MGD_IDコンストラクタ・ファンクション

渡されたパラメータに基づいてMGD_IDオブジェクトを作成し、自身を結果として戻します。

FORMATファンクション

指定した形式でMGD_IDの文字列表現を戻します。

GET_COMPONENTファンクション

指定したMGD_IDコンポーネントの文字列値を戻します。

TO_STRINGファンクション

MGD_IDオブジェクトのセミコロン(;)区切りのコンポーネントの名前/値ペアの文字列値を戻します。

TRANSLATEファンクション

指定した別の形式に識別子を変換した結果を戻します。

例については、「MGD_IDサブプログラムの要約」、および『Oracle Database開発ガイド』識別コード・パッケージの使用方法に関する項を参照してください。

291.3 MGD_IDサブプログラムの要約

次の表は、MGD_IDオブジェクト・タイプのサブプログラムについて説明しています。

特に明記されていないかぎり、MGD_IDオブジェクト・タイプに定義されているプロシージャに渡されるすべての値と名前で、大/小文字は区別されません。大/小文字の区別が必要な場合は、値を二重引用符で囲んでください。

表291-5 MGD_IDオブジェクト・タイプのサブプログラム

サブプログラム 説明

MGD_IDコンストラクタ・ファンクション

渡されたパラメータに基づいてMGD_IDオブジェクトを作成し、自身を結果として戻します。

FORMATファンクション

指定した形式でMGD_IDオブジェクトの文字列表現を戻します。

GET_COMPONENTファンクション

指定したMGD_IDコンポーネントの文字列値を戻します。

TO_STRINGファンクション

MGD_IDオブジェクトのセミコロン(;)区切りのコンポーネントの名前/値ペアの文字列値を戻します。

TRANSLATEファンクション

指定した別の形式に識別子を変換した結果を戻します。

291.3.1 MGD_IDコンストラクタ関数

このコンストラクタ・ファンクションは識別コード・タイプ・オブジェクトMGD_IDを構成します。このコンストラクタ・ファンクションはオーバーロードされています。複数の機能を構文形式ごとに、定義とともに示します。

構文

MGD_IDオブジェクト・タイプをカテゴリIDおよびコンポーネントのリストに基づいて構成します。

MGD_ID (
   category_id      IN VARCHAR2,
   components       IN MGD_ID_COMPONENT_VARRAY)
 RETURN SELF AS RESULT DETERMINISTIC;

MGD_IDオブジェクト・タイプをカテゴリID、識別子文字列および作成に必要な追加パラメータのリストに基づいて構成します。

MGD_ID (
   category_id        VARCHAR2,
   identifier         VARCHAR2,
   parameter_list      VARCHAR2)
 RETURN SELF AS RESULT DETERMINISTIC;

MGD_IDオブジェクト・タイプをカテゴリ名、カテゴリ・バージョンおよびコンポーネントのリストに基づいて構成します。

MGD_ID (
   category_name      VARCHAR2,
   category_version   VARCHAR2,
   components         MGD_ID_COMPONENT_VARRAY)
 RETURN SELF AS RESULT DETERMINISTIC;

MGD_IDオブジェクト・タイプをカテゴリ名、カテゴリ・バージョン、識別子文字列および作成に必要な追加パラメータのリストに基づいて構成します。

MGD_ID (
   category_name      VARCHAR2,
   category_version   VARCHAR2,
   identifier         VARCHAR2,
   parameter_list      VARCHAR2)
 RETURN SELF AS RESULT DETERMINISTIC;

パラメータ

表291-6 MGD_IDコンストラクタ・ファンクションのパラメータ

パラメータ 説明

category_id

カテゴリ識別子。

components

コンポーネントの名前/値ペアのリスト。

category_name

カテゴリ名(EPCなど)

category_version

カテゴリ・バージョン。NULLの場合、指定したカテゴリ名の最新バージョンが使用されます。

identifier

指定したカテゴリ内のコード体系の識別子文字列(形式は任意)。たとえば、SGTIN-96エンコーディングの場合、識別子の形式はBINARYPURE_IDENTITYTAG_ENCODINGLEGACYのいずれかにすることができます。

タグ・データ変換(TDT)マークアップ・ファイルの適切な文法またはパターンに従って、この識別子を文字列として表します。たとえば、文字01で構成されるバイナリ文字列、URI(タグ・エンコーディングまたはPURE_IDENTITY)または入力用の文字列形式として表現されるシリアル化されたレガシー・コード(SGTINコード体系のgtin=00037000302414;serial=10419703など)です。

parameter_list

表現内にオブジェクトを作成するために必要な追加パラメータのリスト。リストは、キー/値ペアを含むパラメータ文字列として表現されます。キー/値ペアのデリミタとしてセミコロン(;)で区切られています。たとえば、GTINコードの場合、パラメータ文字列は次のようになります。

filter=3;companyprefixlength=7;taglength=96

使用上のノート

  • MGD_ID_UTL.EPC_ENCODING_CATEGORY_IDcategory_idとして使用します。

  • カテゴリが未登録の場合、エラーが発生します。

  • bit_lengthパラメータがNULLの場合、bit_lengthbit_encodingの長さの8倍になります。

  • コンポーネント・リストに必要なすべてのコンポーネントが含まれない場合、例外MGD_ID_UTL.e_LackComponentがスローされます。

次の例は識別コード・タイプ・オブジェクトを構成しています。

MGD_IDオブジェクト(SGTIN-64)をカテゴリIDおよびコンポーネントのリストを渡して構成します。

--Contents of constructor11.sql
call DBMS_MGD_ID_UTL.set_proxy('www-proxy.example.com', '80');
call DBMS_MGD_ID_UTL.refresh_category('1');
select MGD_ID('1', 
              MGD_ID_COMPONENT_VARRAY(
               MGD_ID_COMPONENT('companyprefix','0037000'),
               MGD_ID_COMPONENT('itemref','030241'),
               MGD_ID_COMPONENT('serial','1041970'),
               MGD_ID_COMPONENT('schemes','SGTIN-64')
              )
             ) from dual;
call DBMS_MGD_ID_UTL.remove_proxy();

SQL> @constructor11.sql
.
.
.
MGD_ID('1', MGD_ID_COMPONENT_VARRAY(MGD_ID_COMPONENT('companyprefix', '0037000'), 
                                    MGD_ID_COMPONENT('itemref', '030241'), 
                                    MGD_ID_COMPONENT('serial', '1041970'),
                                    MGD_ID_COMPONENT('schemes', 'SGTIN-64')))
.
.
.

MGD_IDオブジェクト(SGTIN-64)をカテゴリID、タグ識別子およびオブジェクトの作成に必要な追加パラメータのリストを渡して構成します。

--Contents of constructor22.sql
call DBMS_MGD_ID_UTL.set_proxy('www-proxy.example.com', '80');
call DBMS_MGD_ID_UTL.refresh_category('1');
select MGD_ID('1', 
              'urn:epc:id:sgtin:0037000.030241.1041970', 
              'filter=3;scheme=SGTIN-64') from dual;
call DBMS_MGD_ID_UTL.remove_proxy();

SQL> @constructor22.sql
.
.
.
MGD_ID('1', MGD_ID_COMPONENT_VARRAY(MGD_ID_COMPONENT('filter', '3'), 
                                    MGD_ID_COMPONENT('schemes', 'SGTIN-64'), 
                                    MGD_ID_COMPONENT('companyprefixlength', '7'), 
                                    MGD_ID_COMPONENT('companyprefix', '0037000'), 
                                    MGD_ID_COMPONENT('scheme', 'SGTIN-64'), 
                                    MGD_ID_COMPONENT('serial', '1041970'), 
                                    MGD_ID_COMPONENT('itemref', '030241')))
.
.
.

MGD_IDオブジェクト(SGTIN-64)をカテゴリ名、カテゴリ・バージョン(NULLの場合は最新バージョンが使用される)およびコンポーネントのリストを渡して構成します。

--Contents of constructor33.sql
call DBMS_MGD_ID_UTL.set_proxy('www-proxy.example.com', '80');
call DBMS_MGD_ID_UTL.refresh_category(DBMS_MGD_ID_UTL.get_category_id('EPC', NULL));
select MGD_ID('EPC', NULL,
              MGD_ID_COMPONENT_VARRAY(
               MGD_ID_COMPONENT('companyprefix','0037000'),
               MGD_ID_COMPONENT('itemref','030241'),
               MGD_ID_COMPONENT('serial','1041970'),
               MGD_ID_COMPONENT('schemes','SGTIN-64')
              )
             ) from dual;
call DBMS_MGD_ID_UTL.remove_proxy();

SQL> @constructor33.sql
.
.
.
MGD_ID('1', MGD_ID_COMPONENT_VARRAY(MGD_ID_COMPONENT('companyprefix', '0037000'), 
                                    MGD_ID_COMPONENT('itemref', '030241'), 
                                    MGD_ID_COMPONENT('serial', '1041970'),
                                    MGD_ID_COMPONENT('schemes', 'SGTIN-64')))
.
.
.

MGD_IDオブジェクト(SGTIN-64)をカテゴリ名とカテゴリ・バージョン、タグ識別子およびオブジェクトの作成に必要な追加パラメータのリストを渡して構成します。

--Contents of constructor44.sql
call DBMS_MGD_ID_UTL.set_proxy('www-proxy.example.com', '80');
call DBMS_MGD_ID_UTL.refresh_category(DBMS_MGD_ID_UTL.get_category_id('EPC', NULL));
select MGD_ID('EPC', NULL,
              'urn:epc:id:sgtin:0037000.030241.1041970', 
              'filter=3;scheme=SGTIN-64') from dual;
call DBMS_MGD_ID_UTL.remove_proxy();

SQL> @constructor4.sql
.
.
.
MGD_ID('1', MGD_ID_COMPONENT_VARRAY(MGD_ID_COMPONENT('filter', '3'),
                                    MGD_ID_COMPONENT('schemes', 'SGTIN-64'), 
                                    MGD_ID_COMPONENT('companyprefixlength', '7'), 
                                    MGD_ID_COMPONENT('companyprefix', '0037000'), 
                                    MGD_ID_COMPONENT('scheme', 'SGTIN-64'), 
                                    MGD_ID_COMPONENT('serial', '1041970'), 
                                    MGD_ID_COMPONENT('itemref', '030241')))
.
.
.

291.3.2 FORMATファンクション

このファンクションは、指定した形式でMGD_IDオブジェクトの文字列表現を戻します。

構文

FORMAT (parameter_list  IN VARCHAR2,
        output_format   IN VARCHAR2)
 RETURN VARCHAR2 DETERMINISTIC;

パラメータ

表291-7 FORMATファンクションのパラメータ

パラメータ 説明

parameter_list

表現内にオブジェクトを作成するために必要な追加パラメータのリスト。リストは、キー/値ペアを含むパラメータ文字列として表現されます。キー/値ペアのデリミタとしてセミコロン(;)で区切られています。たとえば、GTINコードの場合、パラメータ文字列は次のようになります。

filter=3;companyprefixlength=7;taglength=96

output_format

MGD_IDコンポーネントをフォーマットする、サポート対象の出力形式のいずれか。

  • BINARY

  • LEGACY

  • TAG_ENCODING

  • PURE_IDENTITY

  • ONS_HOSTNAME

例については、「GET_COMPONENTファンクション」を参照してください。

291.3.3 GET_COMPONENTファンクション

このファンクションは、指定したMGD_IDコンポーネントの値を戻します。

構文

GET_COMPONENT (
   component_name  IN  VARCHAR2)
 RETURN VARCHAR2 DETERMINISTIC;

パラメータ

表291-8 GET_COMPONENTファンクションのパラメータ

パラメータ 説明

component_name

コンポーネントの名前。

使用上のノート

  • コードが無効なコードの場合は、その構造がメタデータ表で定義されていないことを意味し、エラーが発生します。

  • コードが有効でも必要なコンポーネントを含まない場合、NULLが戻されます。

次の例は、このGID-96識別コンポーネントのゼネラル・マネージャ、オブジェクト・クラス・コンポーネントおよびシリアル番号コンポーネントを戻します。

--Contents of get_components.sql file
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));
    ---------------
    --PURE_IDENTIT
    ---------------
    dbms_output.put_line('..Testing constructor with pure identity');
    ----------------------------------------------------------------------
    -- PURE_IDENTITY representation can be translated to BINARY and 
    -- TAG_ENCODING ONLY when BOTH scheme and filer are provided.
    ----------------------------------------------------------------------
    id := MGD_ID('EPC', NULL, 'urn:epc:id:sgtin:0037000.030241.1041970', 'scheme=SGTIN-64;filter=3');
    dbms_output.put_line(id.to_string);
    dbms_output.put_line('filter         = ' || id.get_component('filter'));
    dbms_output.put_line('company prefix = ' || id.get_component('companyprefix'));
    dbms_output.put_line('itemref        = ' || id.get_component('itemref'));
    dbms_output.put_line('serial         = ' || id.get_component('serial'));
    dbms_output.put_line('BINARY format  = ' || id.format(NULL, 'BINARY'));
    dbms_output.put_line('PURE_IDENTITY format  = ' || id.format(NULL, 'PURE_IDENTITY'));
    dbms_output.put_line('TAG_ENCODING format   = ' || id.format(NULL, 'TAG_ENCODING'));
END;
/
SHOW ERRORS;
call DBMS_MGD_ID_UTL.remove_proxy();
SQL> @get_component.sql
.
.
.
..Testing constructor with pure identity
category_id =1;filter = 3;schemes = SGTIN-64;companyprefixlength =
7;companyprefix = 0037000;scheme = SGTIN-64;serial = 1041970;itemref = 030241
filter         = 3
company prefix = 0037000
itemref        = 030241
serial         = 1041970
BINARY format  =1001100000000000001000001110110001000010000011111110011000110010
PURE_IDENTITY format  = urn:epc:id:sgtin:0037000.030241.1041970
TAG_ENCODING format   = urn:epc:tag:sgtin-64:3.0037000.030241.1041970
PL/SQL procedure successfully completed.
.
.
.

291.3.4 TO_STRINGファンクション

このファンクションは、MGD_IDオブジェクトのセミコロン(;)で区切られたコンポーネントの名前/値ペアを戻します。

構文

TO_STRING 
 RETURN VARCHAR2;

次の例は、MGD_IDオブジェクトを文字列値に変換しています。

-- Contents of tostring3.sql file
call DBMS_MGD_ID_UTL.set_proxy('www-proxy.example.com', '80');
DECLARE
id          MGD_ID;
BEGIN
 DBMS_MGD_ID_UTL.refresh_category(DBMS_MGD_ID_UTL.get_category_id('EPC', NULL));
 dbms_output.put_line('..Testing 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();
connect / as sysdba;
drop user mgduser cascade;

SQL> @tostring3.sql
.
.
.
..Testing 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.
.
.

291.3.5 TRANSLATEファンクション

この静的ファンクションはMGD_IDオブジェクトを構成せずに、直接異なる表現間の変換を行います。

このメソッドはオーバーロードされています。複数の機能を構文形式ごとに、定義とともに示します。

構文

ある形式の識別子を別の指定されたカテゴリ名、タグ識別子、パラメータ・リストおよび出力形式に変換します。

TRANSLATE (
   category_name    IN VARCHAR2,
   identifier       IN VARCHAR2,
   parameter_list   IN VARCHAR2,
   output_format    IN VARCHAR2)
 RETURN VARCHAR2 DETERMINISTIC;

ある形式の識別子を別の指定されたカテゴリ名、カテゴリ・バージョン、タグ識別子、パラメータ・リストおよび出力形式に変換します。

TRANSLATE (
   category_name    IN VARCHAR2,
   category_version IN VARCHAR2,
   identifier       IN VARCHAR2,
   parameter_list   IN VARCHAR2,
   output_format    IN VARCHAR2)
 RETURN VARCHAR2 DETERMINISTIC;

パラメータ

表291-9 TRANSLATEファンクションのパラメータ

パラメータ 説明

category_name

カテゴリの名前。

category_version

カテゴリ・バージョン。NULLの場合、指定したカテゴリ名の最新バージョンが使用されます。

identifier

TDTマークアップ・ファイルの文法またはパターンの1つに従った文字列として表されるEPC識別子。たとえば、文字01で構成されるバイナリ文字列、URI(タグ・エンコーディングまたはPURE_IDENTITY)または入力用の文字列形式として表現されるシリアル化されたレガシー・コード(SGTINコード体系のgtin=00037000302414;serial=10419703など)です。

parameter_list

表現内にオブジェクトを作成するために必要な追加パラメータのリスト。リストは、キー/値ペアを含むパラメータ文字列として表現されます。キー/値ペアのデリミタとしてセミコロン(;)で区切られています。たとえば、GTINコードの場合、パラメータ文字列は次のようになります。

filter=3;companyprefixlength=7;taglength=96

output_format

MGD_IDコンポーネントが変換される、サポート対象の出力形式のいずれか。

  • BINARY

  • LEGACY

  • TAG_ENCODING

  • PURE_IDENTITY

  • ONS_HOSTNAME

使用上のノート

PURE IDENTITY表現からバイナリ表現に変換するときは、parameter_listパラメータを使用してフィルタ値を値として提供する必要があります。

次の例は、あるGID-96表現を別の表現に変換しています。

-- Contents of translate1.sql file
call DBMS_MGD_ID_UTL.set_proxy('www-proxy.example.com', '80');
DECLARE
id          MGD_ID;
BEGIN
 DBMS_MGD_ID_UTL.refresh_category(DBMS_MGD_ID_UTL.get_category_id('EPC', NULL));
  dbms_output.put_line('Category ID is EPC, Identifier is BINARY, Output format is BINARY');
  dbms_output.put_line(
    mgd_id.translate('EPC', 
NULL,'001101010000000000001001000010001000000000000111011000100001000000000000000011111110011000110010'
, NULL, 'BINARY'));
  dbms_output.put_line('Category ID is EPC, Identifier is BINARY, Output format is PURE_IDENTITY');
  dbms_output.put_line(
    mgd_id.translate('EPC', 
NULL,'001101010000000000001001000010001000000000000111011000100001000000000000000011111110011000110010'
, NULL, 'PURE_IDENTITY'));
dbms_output.put_line('Category ID is EPC, Identifier is BINARY, Output format is TAG_ENCODING');
  dbms_output.put_line(
    mgd_id.translate('EPC', 
NULL,'001101010000000000001001000010001000000000000111011000100001000000000000000011111110011000110010'
, NULL, 'TAG_ENCODING'));
  dbms_output.put_line('Category ID is EPC, Identifier is TAG_ENCODING, Output format is BINARY');
  dbms_output.put_line(
    mgd_id.translate('EPC', NULL, 
                     'urn:epc:tag:gid-96:0037000.30241.1041970', 
                     NULL, 'BINARY'));
  dbms_output.put_line('Category ID is EPC, Identifier is TAG_ENCODING, Output format is 
PURE_IDENTITY');
  dbms_output.put_line(
    mgd_id.translate('EPC', NULL, 
                     'urn:epc:tag:gid-96:0037000.30241.1041970', 
                     NULL, 'PURE_IDENTITY'));
dbms_output.put_line('Category ID is EPC, Identifier is TAG_ENCODING, Output format is TAG_ENCODING');
  dbms_output.put_line(
    mgd_id.translate('EPC', NULL, 
                     'urn:epc:tag:gid-96:0037000.30241.1041970', 
                     NULL, 'TAG_ENCODING'));
  dbms_output.put_line('Category ID is EPC, Identifier is PURE_IDENTITY, Output format is BINARY');
  dbms_output.put_line(
    mgd_id.translate('EPC', NULL, 
                     'urn:epc:id:gid:0037000.30241.1041970',
                     NULL, 'BINARY'));
  dbms_output.put_line('Category ID is EPC, Identifier is PURE_IDENTITY, Output format is PURE_IDENTITY');
  dbms_output.put_line(
    mgd_id.translate('EPC', NULL, 
                     'urn:epc:id:gid:0037000.30241.1041970',
                     NULL, 'PURE_IDENTITY'));
  dbms_output.put_line('Category ID is EPC, Identifier is PURE_IDENTITY, Output format is TAG_ENCODING');
  dbms_output.put_line(
    mgd_id.translate('EPC', NULL, 
                     'urn:epc:id:gid:0037000.30241.1041970',
                     NULL, 'TAG_ENCODING'));
END;
/
SHOW ERRORS;
call DBMS_MGD_ID_UTL.remove_proxy();

SQL> @translate1.sql
.
.
.
Category ID is EPC, Identifier is BINARY, Output format is BINARY
001101010000000000001001000010001000000000000111011000100001000000000000000011111110011000110010
Category ID is EPC, Identifier is BINARY, Output format is PURE_IDENTITY
urn:epc:id:gid:37000.30241.1041970
Category ID is EPC, Identifier is BINARY, Output format is TAG_ENCODING
urn:epc:tag:gid-96:37000.30241.1041970
Category ID is EPC, Identifier is TAG_ENCODING, Output format is BINARY
001101010000000000001001000010001000000000000111011000100001000000000000000011111110011000110010
Category ID is EPC, Identifier is TAG_ENCODING, Output format is PURE_IDENTITY
urn:epc:id:gid:0037000.30241.1041970
Category ID is EPC, Identifier is TAG_ENCODING, Output format is TAG_ENCODING
urn:epc:tag:gid-96:0037000.30241.1041970
Category ID is EPC, Identifier is PURE_IDENTITY, Output format is BINARY
001101010000000000001001000010001000000000000111011000100001000000000000000011111110011000110010
Category ID is EPC, Identifier is PURE_IDENTITY, Output format is PURE_IDENTITY
urn:epc:id:gid:0037000.30241.1041970
Category ID is EPC, Identifier is PURE_IDENTITY, Output format is TAG_ENCODING
urn:epc:tag:gid-96:0037000.30241.1041970
PL/SQL procedure successfully completed.
.
.
.