4 Oracle Multimedia ORD_DOC PL/SQLパッケージ

Oracle Multimediaでは、ORD_DOC PL/SQLパッケージが提供されます。このパッケージには、一般的な操作(オペレーティング・システム・ファイルを対象とするメディア・データのインポートおよびエクスポートや、メディア・データからの情報の抽出など)を実行するためのプロシージャが含まれます。

このパッケージにより、BLOBおよびBFILEに格納されているオーディオ、イメージ、ビデオおよびその他の異機種間メディア・データにOracle Multimediaサポートが追加されます。

ORD_DOCパッケージは、orddrpsp.sqlファイルに定義されています。インストール後、このファイルは次のOracleホーム・ディレクトリに格納されています。

<ORACLE_HOME>/ord/im/admin (LinuxおよびUNIXの場合)

<ORACLE_HOME>\ord\im\admin (Windowsの場合)

これらのトピックの例では、DOCDIRディレクトリと、TAUD、TDOC、TIMGおよびTVIDの各表が存在すると仮定します。

ORD_DOC PL/SQLパッケージのプロシージャの詳細は、次のトピックを参照してください。

関連項目:

4.1 ORD_DOC PL/SQLパッケージ: BFILEのgetProperties( )

構文

getProperties(docBfile   IN OUT NOCOPY BFILE, 
              attributes IN OUT NOCOPY CLOB);

説明

BFILEに格納されたドキュメント・データを読み取ってサポートしているフォーマットのメディア属性の値を取得し、入力CLOBに格納します。このプロシージャは、XML形式で一連のフォーマット・プロパティおよびアプリケーション・プロパティをCLOBに移入します。

パラメータ

docBfile

BFILEで格納されるドキュメント・データを指定します。

attributes

getProperties( )プロシージャによって抽出されたXML属性情報を格納するCLOBを指定します。このCLOBには、XML形式でドキュメントBFILEデータの一連のフォーマット・プロパティおよびアプリケーション・プロパティが移入されます。

使用上の注意

なし。

プラグマ

なし。

例外

なし。

既知のドキュメント属性のプロパティ情報を取得します。

DECLARE
   doc_attrib CLOB;
   doc_data BFILE:=BFILENAME('DOCDIR','testvid.dat');
BEGIN
   DBMS_LOB.CREATETEMPORARY(doc_attrib, FALSE, DBMS_LOB.CALL);

   -- get properties from bfile
   ORDSYS.ORD_DOC.getProperties(doc_data, doc_attrib);

   -- print length of extracted properties
   DBMS_OUTPUT.PUT_LINE('Size of XML Annotations ' ||
        TO_CHAR(DBMS_LOB.GETLENGTH(doc_attrib)));

EXCEPTION
   WHEN OTHERS THEN
        RAISE;
END;
/

4.2 ORD_DOC PL/SQLパッケージ: BFILEのgetProperties( ) (すべての属性)

構文

getProperties(docBfile      IN OUT NOCOPY BFILE, 
              mimeType      OUT VARCHAR2, 
              format        OUT VARCHAR2, 
              contentLength OUT INTEGER);

説明

BFILEに格納されたドキュメント・データを読み取ってサポートしているフォーマットのメディア属性の値を取得し、明示的パラメータとして戻します。このプロシージャは、ドキュメント・データの属性(MIMEタイプ、コンテンツ長およびフォーマット)のプロパティを抽出します。

パラメータ

docBfile

BFILEで格納されるドキュメント・データを指定します。

mimeType

ドキュメント・データのMIMEタイプが戻されます。

format

ドキュメント・データのフォーマットを指定します。

contentLength

コンテンツ長がバイト単位で戻されます。

使用上の注意

メディア・ソースからプロパティを抽出できない場合、それぞれのパラメータがNULLに設定されます。

プラグマ

なし。

例外

なし。

既知のドキュメント属性のプロパティ情報を取得します。

DECLARE
   doc_data BFILE:=BFILENAME('DOCDIR','testimg.dat');
   doc_mimeType VARCHAR2(80);
   doc_format VARCHAR2(32):=NULL;
   doc_contentLength NUMBER;
BEGIN

   -- get properties from bfile
   ORDSYS.ORD_DOC.getProperties(doc_data,
        doc_mimeType, doc_format, doc_contentLength);

   -- print properties
   DBMS_OUTPUT.PUT_LINE('mimeType: ' || doc_mimeType );
   DBMS_OUTPUT.PUT_LINE('format: ' || doc_format );
   DBMS_OUTPUT.PUT_LINE('contentLength: ' || doc_contentLength );

EXCEPTION
   WHEN OTHERS THEN
        RAISE;
END;
/

4.3 ORD_DOC PL/SQLパッケージ: BLOBのgetProperties( )

構文

getProperties(docBlob    IN BLOB, 
              attributes IN OUT NOCOPY CLOB);

説明

BLOBに格納されたドキュメント・データを読み取ってサポートしているフォーマットのメディア属性の値を取得し、入力CLOBに格納します。このプロシージャは、ドキュメント・データの属性(MIMEタイプ、コンテンツ長およびフォーマット)のプロパティを抽出します。このプロシージャは、XML形式で一連のフォーマット・プロパティおよびアプリケーション・プロパティをCLOBに移入します。

パラメータ

docBlob

BLOBで格納されるドキュメント・データを指定します。

attributes

getProperties( )プロシージャによって抽出されたXML属性情報を格納するCLOBを指定します。このCLOBには、XML形式でドキュメントBLOBデータの一連のフォーマット・プロパティおよびアプリケーション・プロパティが移入されます。

使用上の注意

なし。

プラグマ

なし。

例外

ORDSourceExceptions.EMPTY_SOURCE

この例外は、入力docBLOBパラメータがNULLの場合に発生します。

既知のドキュメント属性のプロパティ情報を取得します。

DECLARE
   doc_attrib CLOB;
   doc_data BLOB;
BEGIN
   SELECT document,attributes INTO doc_data,doc_attrib 
       FROM tdoc WHERE N=1 FOR UPDATE;

   -- get properties from blob 
   ORDSYS.ORD_DOC.getProperties(doc_data, doc_attrib);
  
   -- print length of extracted properties
   DBMS_OUTPUT.PUT_LINE('Size of XML Annotations ' ||
        TO_CHAR(DBMS_LOB.GETLENGTH(doc_attrib)));

   UPDATE tdoc SET document=doc_data, attributes=doc_attrib WHERE N=1;
   COMMIT;

EXCEPTION
   WHEN OTHERS THEN
        RAISE;
END;
/

4.4 ORD_DOC PL/SQLパッケージ: BLOBのgetProperties( ) (すべての属性)

構文

getProperties(docBLOB       IN BLOB, 
              mimeType      OUT VARCHAR2, 
              format        OUT VARCHAR2, 
              contentLength OUT INTEGER);

説明

BLOBに格納されたドキュメント・データを読み取ってサポートしているフォーマットのメディア属性の値を取得し、明示的パラメータとして戻します。このプロシージャは、ドキュメント・データの属性(MIMEタイプ、コンテンツ長およびフォーマット)のプロパティを抽出します。

パラメータ

docBLOB

BLOBで格納されるドキュメント・データを指定します。

mimeType

ドキュメント・データのMIMEタイプが戻されます。

format

ドキュメント・データのフォーマットを指定します。

contentLength

コンテンツ長がバイト単位で戻されます。

使用上の注意

メディア・ソースからプロパティを抽出できない場合、それぞれのパラメータがNULLに設定されます。

プラグマ

なし。

例外

ORDSourceExceptions.EMPTY_SOURCE

この例外は、入力docBLOBパラメータがNULLの場合に発生します。

既知のドキュメント属性のプロパティ情報を取得します。

DECLARE
   doc_data BLOB;
   doc_mimeType VARCHAR2(80);
   doc_format VARCHAR2(32):=NULL;
   doc_contentLength NUMBER;
BEGIN
   SELECT document, mimetype, format, contentlength 
       INTO doc_data, doc_mimeType, doc_format, doc_contentLength 
       FROM tdoc WHERE N=1 FOR UPDATE;

   -- get properties from blob
   ORDSYS.ORD_DOC.getProperties(doc_data, doc_mimeType, doc_format, 
       doc_contentLength);

   -- print properties
   DBMS_OUTPUT.PUT_LINE('mimeType: ' || doc_mimeType );
   DBMS_OUTPUT.PUT_LINE('format: ' || doc_format );
   DBMS_OUTPUT.PUT_LINE('contentLength: ' || doc_contentLength );

   UPDATE tdoc SET
         document=doc_data,
         mimetype=doc_mimeType,
         format=doc_format,
         contentlength=doc_contentLength
       WHERE N=1;
   COMMIT;

EXCEPTION
   WHEN OTHERS THEN
        RAISE;
END;
/