ヘッダーをスキップ
Oracle Multimediaリファレンス
11gリリース1(11.1)
E05683-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

7 Oracle Multimediaのリレーショナル・インタフェース・リファレンス

リレーショナル表にメディア・データを格納したり、リレーショナル表内でメディア・データを管理するためのマルチメディア・アプリケーションをOracle Multimediaのオブジェクト型を使用せずに作成したアプリケーション開発者、およびOracle Multimediaオブジェクトを使用するために既存のマルチメディア・アプリケーションを移行しないアプリケーション開発者はOracle Multimediaのリレーショナル・インタフェースを使用してメディア・データを管理できます。Oracle Multimediaのリレーショナル・インタフェースは、次の処理を行う一連のメソッドで構成されています。

Oracle Multimediaのリレーショナル・インタフェースを使用する主なメリットは、アプリケーション開発者がアプリケーションへの最小限の変更で、Oracle Multimediaの機能を利用し、スキーマをOracle Multimediaオブジェクトに変更せずに、データを格納できることです。

Oracle Multimediaのリレーショナル・インタフェースは、Oracle Multimediaオブジェクト(ORDAudio、ORDDoc、ORDImageおよびORDVideo)用の一連のスタティック・メソッド(「リレーショナル・インタフェースのスタティック・メソッド」を参照)で構成されています。これらはスタティック・メソッドであるため、オブジェクトはインスタンス化されません。データは、オブジェクト属性ではなくメソッドの引数によって渡されます。

Oracle Multimediaオブジェクト(ORDAudio、ORDDoc、ORDImageおよびORDVideo)用のスタティック・メソッドは、ordaspec.sqlorddspec.sqlordispec.sqlおよびordvspec.sqlの各ファイルで定義されています。 インストール後、これらのファイルは次のOracleホーム・ディレクトリに格納されています。

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

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

7.1 重要な注意点

メディアのソースに関連するメソッドは、最初の引数にctx (RAW)を取ります。これらのメソッドのいずれかをクライアントから初めてコールする場合、ctx構造体を割り当てて、NULLに初期化する必要があります。

メディアの解析に関連するORDAudio、ORDDocおよびORDVideoのメソッドは、最初の引数にctx (RAW)を取ります。これらのメソッドのいずれかをクライアントから初めてコールする場合、ctx構造体を割り当てて、NULLに初期化する必要があります。


リレーショナル・インタフェースのスタティック・メソッド

この項では、リレーショナル・インタフェースのスタティック・メソッドに関するリファレンス情報を示します。ここでは、すべてのオブジェクト型に共通のスタティック・メソッド、および特定のオブジェクト型に固有であるか、またはそれぞれのオブジェクト型によって実装が異なるスタティック・メソッドについて説明します。

各項では、SQLソース・ファイルでの定義に従って、スタティック・メソッドを最初に示します。その後、各スタティック・メソッドをアルファベット順に説明します。


すべてのオブジェクト型に共通のスタティック・メソッド

この項では、リレーショナル・インタフェースに使用する共通のOracle Multimediaスタティック・メソッドに関するリファレンス情報を示します。

ORDAudio、ORDDoc、ORDImageおよびORDVideoのリレーショナル・インタフェースで共通のスタティック・メソッドは、ordaspec.sqlorddspec.sqlordispec.sqlおよびordvspec.sqlの各ファイルで定義されています。

この項の例では、「例で使用されるオーディオ表の定義」「例で使用されるメディア表の定義」「例で使用されるイメージ表の定義」および「例で使用されるビデオ表の定義」で説明しているテスト表が各オブジェクト型に作成されていることを前提にしています。


export( )

構文

export(ctx IN OUT RAW,

local_data IN BLOB,

source_type IN VARCHAR2,

source_location IN VARCHAR2,

source_name IN VARCHAR2);

説明

データベース内のローカル・ソース(local_data)から外部データ・ソースへデータをコピーします。


注意:

export( )メソッドは、source_typeパラメータの値がFILEの場合にのみネイティブにサポートされます。この場合、データは、Oracle Databaseにアクセス可能なディレクトリ内にあるファイルに書き込まれます。ユーザー定義ソースによっては、他のタイプのデータ・ストアに対する書込み権限を提供するexport( )メソッドがサポートされる場合があります。

パラメータ

ctx

ソース・プラグインのコンテキスト情報を指定します。

local_data

エクスポートするBLOBの位置を指定します。

source_type

エクスポートするソース・データのタイプを指定します。このパラメータでは、大/小文字は区別されません。

source_location

ソース・データのエクスポート先の位置を指定します。

source_name

ソース・データのエクスポート先のオブジェクト名を指定します。

使用上の注意

export( )メソッドをコールした後、必要に応じて、SQL DELETE文を発行するか、またはDBMS_LOB.TRIMプロシージャをコールして、ローカルに格納されているコンテンツを削除できます。

ソース・タイプがFILEの場合、export( )メソッドは、BLOBに格納されているデータは変更しません。

source_typeパラメータの値がFILEの場合、source_locationパラメータはOracleディレクトリ・オブジェクトの名前を、source_nameパラメータはデータが含まれるファイルの名前を指定します。

export( )メソッドは、ユーザーがアクセス権を持つデータベース・ディレクトリのオブジェクトに対してのみ書き込みます。つまり、SQLのCREATE DIRECTORY文を使用して作成したディレクトリ・オブジェクト、または読取りおよび書込み権限を付与されたディレクトリ・オブジェクトにアクセスできます。

たとえば、次のSQL*Plusコマンドを実行すると、ディレクトリ・オブジェクトが作成され、ディレクトリ/mydir/work内の任意のファイルに対する読取りおよび書込み権限がユーザーmediauserに付与されます。

CONNECT sys/ as sysdba
Enter password: password
CREATE OR REPLACE DIRECTORY FILE_DIR AS '/mydir/work';
GRANT READ,WRITE ON DIRECTORY FILE_DIR TO mediauser;

プラグマ

なし

例外

ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION

この例外は、export( )メソッドをコールし、source_typeパラメータの値がNULLの場合に発生します。

ORDSourceExceptions.IO_ERROR

この例外は、指定したファイルにBLOBデータを書き込む際、export( )メソッドでエラーが発生した場合に発生します。

ORDSourceExceptions.METHOD_NOT_SUPPORTED

この例外は、export( )メソッドをコールし、使用するソース・プラグインがこのメソッドをサポートしていない場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

ローカル・ソースから外部オーディオ・データ・ソースへデータをエクスポートします。


注意:

e:\mydir\workはテスト・ファイルが格納されているディレクトリ、testaud.datはテスト・ファイルのファイル、passwordはシステムのパスワードに置き換えてください。

CONNECT system
Enter password: password;
CREATE OR REPLACE DIRECTORY AUDIODIR AS 'e:\mydir\work';
GRANT READ ON DIRECTORY AUDIODIR TO mediauser;

CONNECT mediauser
Enter password: password;

DECLARE
  audio_data BLOB;
  ctx RAW(64) :=NULL;
BEGIN
  SELECT aud INTO audio_data FROM taud WHERE N = 1;
  ORDSYS.ORDAudio.export(ctx,audio_data,'file','AUDIODIR','testaud.dat');
EXCEPTION
  WHEN OTHERS THEN
  RAISE;
END;
/

importFrom( )

構文

importFrom(ctx IN OUT RAW,

local_data IN OUT NOCOPY BLOB,

source_type IN VARCHAR2,

source_location IN VARCHAR2,

source_name IN VARCHAR2);

説明

指定された外部データ・ソースからデータベース内の(埋込みORDSourceオブジェクト型の)source.localData属性にデータを転送します。

パラメータ

ctx

ソース・プラグインのコンテキスト情報を指定します。このパラメータは、常に割り当てて、NULLに初期化する必要があります。ユーザー定義のソース・プラグインを使用する場合は、openSource( )メソッドをコールします。詳細は、7.1項を参照してください。

local_data

データのインポート先のBLOBの位置を指定します。

source_type

ソース・データのタイプを指定します。

source_location

インポート元のソース・データの位置を指定します。

source_name

ソース・データの名前を指定します。

使用上の注意

ソースがfileの場合、このメソッドを使用する前に、source_locationパラメータで指定したディレクトリが存在するか、または作成されていることを確認する必要があります。

プラグマ

なし

例外

ORDSourceExceptions.METHOD_NOT_SUPPORTED

この例外は、importFrom( )メソッドをコールし、使用するソース・プラグインがこのメソッドをサポートしていない場合に発生します。

ORDSourceExceptions.NULL_SOURCE

この例外は、importFrom( )メソッドをコールし、local_dataパラメータの値がNULLまたは初期化されていない場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

指定した外部データ・ソースからローカル・ソースにデータをインポートします。


注意:

e:\mydir\workはテスト・ファイルが格納されているディレクトリ、testimg.dattestaud.datおよびtestvid.datはテスト・ファイルのファイル、passwordはシステムのパスワードに置き換えてください。

CONNECT system
Enter password: password;
CREATE OR REPLACE DIRECTORY DOCDIR AS 'e:\mydir\work';
GRANT READ ON DIRECTORY DOCDIR TO mediauser;

CONNECT mediauser
Enter password: password;

DECLARE
  document_data BLOB;
  ctx RAW(64) :=NULL;
BEGIN
   SELECT document INTO document_data FROM tdoc WHERE N = 1 FOR UPDATE;
   ORDSYS.ORDDoc.importFrom(ctx,document_data,'file','DOCDIR','testimg.dat');
   UPDATE tdoc SET document = document_data WHERE N = 1;
   COMMIT;
   SELECT document INTO document_data FROM tdoc WHERE N = 2 FOR UPDATE;
   ORDSYS.ORDDoc.importFrom(ctx,document_data,'file','DOCDIR','testaud.dat');
   UPDATE tdoc SET document = document_data WHERE N = 2;
   COMMIT;
   SELECT document INTO document_data FROM tdoc WHERE N = 3 FOR UPDATE;
   ORDSYS.ORDDoc.importFrom(ctx,document_data,'file','DOCDIR','testvid.dat');
   UPDATE tdoc SET document = document_data WHERE N = 3;
   COMMIT;
EXCEPTION
   WHEN OTHERS THEN
   RAISE;
END;
/

importFrom( )(すべての属性)

構文

importFrom(ctx IN OUT RAW,

local_data IN OUT NOCOPY BLOB,

source_type IN VARCHAR2,

source_location IN VARCHAR2,

source_name IN VARCHAR2,

format OUT VARCHAR2,

mime_type OUT VARCHAR2);

説明

指定された外部データ・ソースからデータベース内の(埋込みORDSourceオブジェクト型の)source.localData属性にデータを転送します。

パラメータ

ctx

ソース・プラグインのコンテキスト情報を指定します。

local_data

データのインポート先のBLOBの位置を指定します。

source_type

ソース・データのタイプを指定します。

source_location

インポート元のソース・データの位置を指定します。

source_name

ソース・データの名前を指定します。

format

データのフォーマットです。可能な場合、(HTTPソースから)値が戻されます。

mime_type

データのMIMEタイプです。可能な場合、(HTTPソースから)値が戻されます。

使用上の注意

ソースがfileの場合、このメソッドを使用する前に、source_locationパラメータで指定したディレクトリが存在するか、または作成されていることを確認する必要があります。

プラグマ

なし

例外

ORDSourceExceptions.METHOD_NOT_SUPPORTED

この例外は、importFrom( )メソッドをコールし、使用するソース・プラグインがこのメソッドをサポートしていない場合に発生します。

ORDSourceExceptions.NULL_SOURCE

この例外は、importFrom( )メソッドをコールし、local_dataパラメータの値がNULLまたは初期化されていない場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

指定した外部データ・ソースからローカル・ソースにイメージ・データをインポートします。


注意:

e:\mydir\workはテスト・ファイルが格納されているディレクトリ、testimg.datはテスト・ファイルのファイル、passwordはシステムのパスワードに置き換えてください。

CONNECT system
Enter password: password;
CREATE OR REPLACE DIRECTORY IMAGEDIR AS 'e:\mydir\work';
GRANT READ ON DIRECTORY IMAGEDIR TO user;

CONNECT user
Enter password: password;

DECLARE
  image_data BLOB;
  ctx RAW(64) :=NULL;
  img_format     VARCHAR2(32)  := NULL;
  img_mime_type  VARCHAR2(80);
BEGIN
   SELECT img INTO image_data FROM timg WHERE N = 1 FOR UPDATE;
   ORDSYS.ORDImage.importFrom(ctx,image_data,'file','IMAGEDIR','testimg.dat',img_format,img_mime_type);
   UPDATE timg SET img = image_data WHERE N = 1;
   COMMIT;
EXCEPTION
   WHEN OTHERS THEN
   RAISE;
END;
/

ORDAudioオブジェクト型のリレーショナル・インタフェースに固有のスタティック・メソッド

この項では、ORDAudioリレーショナル・インタフェースに固有のOracle Multimediaスタティック・メソッドに関するリファレンス情報を示します。

リレーショナル・インタフェースは、ORDAudioオブジェクト型ではなくBLOBおよびBFILEに格納されているオーディオ・データへのOracle Multimediaサポートを追加します。 ORDAudioリレーショナル・インタフェースに固有のスタティック・メソッドは、ordaspec.sqlファイルで定義されています。

例で使用されるオーディオ表の定義

この項で説明するメソッドでは、テスト用のオーディオ表TAUDに基づいて例が示されています。例を参照する際は、次のTAUD表の定義を参照してください。

TAUD表の定義

CREATE TABLE taud(n                NUMBER,
                  aud              BLOB,
                  attributes       CLOB,
                  mimetype         VARCHAR2(4000),
                  format           VARCHAR2(31),
                  encoding         VARCHAR2(256),
                  numberofchannels INTEGER,
                  samplingrate     INTEGER,
                  samplesize       INTEGER,
                  compressiontype  VARCHAR2(4000),
                  audioduration    INTEGER)
LOB(aud) STORE AS SECUREFILE;

INSERT INTO taud VALUES(1,EMPTY_BLOB(),EMPTY_CLOB(), NULL, NULL, NULL, NULL,
   NULL, NULL, NULL, NULL);
INSERT INTO taud VALUES(2,EMPTY_BLOB(),EMPTY_CLOB(), NULL, NULL, NULL, NULL,
   NULL, NULL, NULL, NULL);
COMMIT;

BFILEのgetProperties( )

構文

getProperties(ctx IN OUT RAW,

audioBfile IN OUT NOCOPY BFILE,

attributes IN OUT NOCOPY CLOB,

format IN VARCHAR2);

説明

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

パラメータ

ctx

フォーマット・プラグインのコンテキスト情報を指定します。

audioBfile

BFILEで格納されるオーディオ・データを指定します。

attributes

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

format

オーディオ・データのフォーマットを指定します。このパラメータにNULL以外の値を指定すると、このフォーマット・タイプのフォーマット・プラグインが起動します。

使用上の注意

なし

プラグマ

なし

例外

ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION

この例外は、getProperties( )メソッドをコールし、オーディオ・プラグインに例外が発生した場合に発生します。

ORDSourceExceptions.EMPTY_SOURCE

この例外は、source.local属性の値が1または0(TRUE)で、source.localData属性の値がNULLの場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

既知のオーディオ属性のプロパティ情報を取得します。

DECLARE
  aud_attrib CLOB;
  ctx RAW(64) :=NULL;
  aud_data BFILE := BFILENAME('AUDIODIR','testaud.dat');
  aud_format VARCHAR2(160) := NULL;
BEGIN
  DBMS_LOB.CREATETEMPORARY(aud_attrib, FALSE, DBMS_LOB.CALL);
  ORDSYS.ORDAudio.getProperties(ctx, aud_data, aud_attrib, aud_format);

  DBMS_OUTPUT.put_line('Size of XML Annotations ' ||
                   TO_CHAR(DBMS_LOB.GETLENGTH(aud_attrib)));
EXCEPTION
  WHEN OTHERS THEN
  RAISE;
END;
/

BFILEのgetProperties( )(すべての属性)

構文

getProperties(ctx IN OUT RAW,

audioBfile IN OUT NOCOPY BFILE,

attributes IN OUT NOCOPY CLOB,

mimeType OUT VARCHAR2,

format IN OUT VARCHAR2

encoding OUT VARCHAR2,

numberOfChannels OUT INTEGER,

samplingRate OUT INTEGER,

sampleSize OUT INTEGER,

compressionType OUT VARCHAR2,

audioDuration OUT INTEGER);

説明

オーディオBFILEデータを読み取ってサポートしているフォーマットのメディア属性の値を取得し、入力CLOBに格納して明示的パラメータとして戻します。このメソッドは、オーディオ・データの属性のプロパティを取得します。属性には、再生時間、MIMEタイプ、圧縮タイプ、フォーマット、エンコーディング・タイプ、チャネル数、サンプリング・レートおよびサンプル・サイズが含まれます。このメソッドは、XML形式で様々なフォーマット・プロパティおよびアプリケーション・プロパティをCLOBに移入します。

パラメータ

ctx

フォーマット・プラグインのコンテキスト情報を指定します。

audioBfile

BFILEで格納されるオーディオ・データを指定します。

attributes

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

mimeType

オーディオ・データのMIMEタイプが戻されます。

format

オーディオ・データのフォーマットを指定します。NULL以外の値を指定すると、このフォーマット・タイプのフォーマット・プラグインが起動します。それ以外の場合は、デフォルトのプラグインが使用され、導出されたフォーマットの値が戻されます。

encoding

オーディオ・データのエンコーディング・タイプが戻されます。

numberOfChannels

オーディオ・データのチャネル数が戻されます。

samplingRate

オーディオ・データが記録されているサンプルの1秒当たりのサンプリング・レートが戻されます。

sampleSize

データ内のオーディオのサンプル幅またはサンプル数が戻されます。

compressionType

オーディオ・データの圧縮タイプが戻されます。

audioDuration

オーディオ・データの再生時間の合計が戻されます。

使用上の注意

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

プラグマ

なし

例外

ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION

この例外は、getProperties( )メソッドをコールし、オーディオ・プラグインに例外が発生した場合に発生します。

ORDSourceExceptions.EMPTY_SOURCE

この例外は、source.local属性の値が1または0(TRUE)で、source.localData属性の値がNULLの場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

既知のオーディオ属性のプロパティ情報を取得します。

DECLARE
  aud_attrib        CLOB;
  ctx               RAW(64) :=NULL;
  data              BFILE := BFILENAME('AUDIODIR','testaud.dat');
  mimeType          VARCHAR2(80);
  format            VARCHAR2(32) := NULL;
  encoding          VARCHAR2(160);
  numberOfChannels  NUMBER;
  samplingRate      NUMBER;
  sampleSize        NUMBER;
  compressionType   VARCHAR2(160);
  audioDuration     NUMBER;
BEGIN
  DBMS_LOB.CREATETEMPORARY(aud_attrib, FALSE, DBMS_LOB.CALL);

  ORDSYS.ORDAudio.getProperties(ctx, data, aud_attrib, mimeType, format, encoding,
              numberOfChannels, samplingRate, sampleSize, compressionType,
 audioDuration);

  DBMS_OUTPUT.put_line('Size of XML Annotations ' ||
                   TO_CHAR(DBMS_LOB.GETLENGTH(aud_attrib)));
  DBMS_OUTPUT.put_line('mimeType: ' || mimeType );
  DBMS_OUTPUT.put_line('format: ' || format );
  DBMS_OUTPUT.put_line('encoding: ' || encoding );
  DBMS_OUTPUT.put_line('numberOfChannels: ' || numberOfChannels );
  DBMS_OUTPUT.put_line('samplingRate: ' || samplingRate );
  DBMS_OUTPUT.put_line('sampleSize: ' || sampleSize );
  DBMS_OUTPUT.put_line('compressionType: ' || compressionType );
  DBMS_OUTPUT.put_line('audioDuration: ' || audioDuration );
EXCEPTION
  WHEN OTHERS THEN
  RAISE;
END;
/


BLOBのgetProperties( )

構文

getProperties(ctx IN OUT RAW,

audioBlob IN BLOB,

attributes IN OUT NOCOPY CLOB,

format IN VARCHAR2);

説明

オーディオBLOBデータを読み取ってサポートしているフォーマットのメディア属性の値を取得し、入力CLOBに格納します。このメソッドは、XML形式で様々なフォーマット・プロパティおよびアプリケーション・プロパティをCLOBに移入します。

パラメータ

ctx

フォーマット・プラグインのコンテキスト情報を指定します。

audioBlob

BLOBで格納されるオーディオ・データを指定します。

attributes

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

format

オーディオ・データのフォーマットを指定します。このパラメータにNULL以外の値を指定すると、このフォーマット・タイプのフォーマット・プラグインが起動します。それ以外の場合は、デフォルトのプラグインが使用されます。

使用上の注意

なし

プラグマ

なし

例外

ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION

この例外は、getProperties( )メソッドをコールし、オーディオ・プラグインに例外が発生した場合に発生します。

ORDSourceExceptions.EMPTY_SOURCE

この例外は、source.local属性の値が1または0(TRUE)で、source.localData属性の値がNULLの場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

既知のオーディオ属性のプロパティ情報を取得します。

DECLARE
  aud_attrib CLOB;
  ctx RAW(64) :=NULL;
  aud_data BLOB;
  aud_format VARCHAR2(160) := NULL;
BEGIN
  SELECT aud, attributes INTO aud_data, aud_attrib FROM taud WHERE N =1 FOR UPDATE;
  ORDSYS.ORDAudio.getProperties(ctx,aud_data,aud_attrib,aud_format);
  DBMS_OUTPUT.put_line('Size of XML Annotations: ' ||
                  TO_CHAR(DBMS_LOB.GETLENGTH(aud_attrib)));
  UPDATE taud SET attributes=aud_attrib WHERE N=1;
  COMMIT;
EXCEPTION
  WHEN OTHERS THEN
  RAISE;
END;
/

BLOBのgetProperties( )(すべての属性)

構文

getProperties(ctx IN OUT RAW,

audioBlob IN BLOB,

attributes IN OUT NOCOPY CLOB,

mimeType OUT VARCHAR2,

format IN OUT VARCHAR2

encoding OUT VARCHAR2,

numberOfChannels OUT INTEGER,

samplingRate OUT INTEGER,

sampleSize OUT INTEGER,

compressionType OUT VARCHAR2,

audioDuration OUT INTEGER);

説明

オーディオBLOBデータを読み取ってサポートしているフォーマットのメディア属性の値を取得し、入力CLOBに格納して明示的パラメータとして戻します。このメソッドは、オーディオ・データの属性のプロパティを取得します。属性には、再生時間、MIMEタイプ、圧縮タイプ、フォーマット、エンコーディング・タイプ、チャネル数、サンプリング・レートおよびサンプル・サイズが含まれます。このメソッドは、XML形式で様々なフォーマット・プロパティおよびアプリケーション・プロパティをCLOBに移入します。

パラメータ

ctx

フォーマット・プラグインのコンテキスト情報を指定します。

audioBlob

BLOBで格納されるオーディオ・データを指定します。

attributes

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

mimeType

オーディオ・データのMIMEタイプが戻されます。

format

オーディオ・データのフォーマットを指定します。NULL以外の値を指定すると、このフォーマット・タイプのフォーマット・プラグインが起動します。それ以外の場合は、導出されたフォーマットの値が戻されます。

encoding

オーディオ・データのエンコーディング・タイプが戻されます。

numberOfChannels

オーディオ・データのチャネル数が戻されます。

samplingRate

オーディオ・データが記録されているサンプルの1秒当たりのサンプリング・レートが戻されます。

sampleSize

データ内のオーディオのサンプル幅またはサンプル数が戻されます。

compressionType

オーディオ・データの圧縮タイプが戻されます。

audioDuration

オーディオ・データの再生時間の合計が戻されます。

使用上の注意

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

プラグマ

なし

例外

ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION

この例外は、getProperties( )メソッドをコールし、オーディオ・プラグインに例外が発生した場合に発生します。

ORDSourceExceptions.EMPTY_SOURCE

この例外は、source.local属性の値が1または0(TRUE)で、source.localData属性の値がNULLの場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

既知のオーディオ属性のプロパティ情報を取得します。

DECLARE
  aud_attrib        CLOB;
  ctx               RAW(64) := NULL;
  aud_data          BLOB;
  mimeType          VARCHAR2(80);
  format            VARCHAR2(32) := NULL;
  encoding          VARCHAR2(160);
  numberOfChannels  NUMBER;
  samplingRate      NUMBER;
  sampleSize        NUMBER;
  compressionType   VARCHAR2(160);
  audioDuration     NUMBER;
BEGIN
  SELECT aud, attributes, mimetype, format, encoding, numberofchannels, samplingrate,
    samplesize, compressiontype, audioduration INTO aud_data, aud_attrib, mimeType,
    format, encoding, numberOfChannels, samplingRate, sampleSize, compressionType,
    audioDuration FROM taud WHERE N = 1 FOR UPDATE;

  ORDSYS.ORDAudio.getProperties(ctx, aud_data, aud_attrib, mimeType, format, encoding,
              numberOfChannels, samplingRate, sampleSize, compressionType, audioDuration);

  DBMS_OUTPUT.put_line('Size of XML Annotations ' ||
                   TO_CHAR(DBMS_LOB.GETLENGTH(aud_attrib)));
  DBMS_OUTPUT.put_line('mimeType: ' || mimeType );
  DBMS_OUTPUT.put_line('format: ' || format );
  DBMS_OUTPUT.put_line('encoding: ' || encoding );
  DBMS_OUTPUT.put_line('numberOfChannels: ' || numberOfChannels );
  DBMS_OUTPUT.put_line('samplingRate: ' || samplingRate );
  DBMS_OUTPUT.put_line('sampleSize: ' || sampleSize );
  DBMS_OUTPUT.put_line('compressionType: ' || compressionType );
  DBMS_OUTPUT.put_line('audioDuration: ' || audioDuration );
  UPDATE taud SET
               aud=aud_data,
               attributes=aud_attrib,
               mimetype=mimeType,
               format=format,
               encoding=encoding,
               numberofchannels=numberOfChannels,
               samplingrate=samplingRate,
               samplesize=sampleSize,
               compressiontype=compressionType,
               audioduration=audioDuration
             WHERE n=1;
  COMMIT;
EXCEPTION
  WHEN OTHERS THEN
  RAISE;
END;
/

ORDDocオブジェクト型のリレーショナル・インタフェースに固有のスタティック・メソッド

この項では、ORDDocリレーショナル・インタフェースに固有のOracle Multimediaスタティック・メソッドに関するリファレンス情報を示します。

リレーショナル・インタフェースは、ORDDocオブジェクト型ではなくBLOBおよびBFILEに格納されているオーディオ、イメージ、ビデオおよびその他の異機種間メディア・データへのOracle Multimediaサポートを追加します。 ORDDocリレーショナル・インタフェースに固有のスタティック・メソッドは、orddspec.sqlファイルで定義されています。

例で使用されるメディア表の定義

この項で説明するメソッドでは、テスト用のドキュメント表TDOCに基づいて例が示されています。例を参照する際は、次のTDOC表の定義を参照してください。

TDOC表の定義

CREATE TABLE tdoc(n             NUMBER,
                  document      BLOB,
                  attributes    CLOB,
                  mimetype      VARCHAR2(80),
                  format        VARCHAR2(80),
                  contentlength INTEGER)
LOB(document) STORE AS SECUREFILE;

INSERT INTO tdoc VALUES(1, EMPTY_BLOB(), EMPTY_CLOB(), NULL, NULL, NULL);
INSERT INTO tdoc VALUES(2, EMPTY_BLOB(), EMPTY_CLOB(), NULL, NULL, NULL);
INSERT INTO tdoc VALUES(3, EMPTY_BLOB(), EMPTY_CLOB(), NULL, NULL, NULL);
INSERT INTO tdoc VALUES(4, EMPTY_BLOB(), EMPTY_CLOB(), NULL, NULL, NULL);
COMMIT;

BFILEのgetProperties( )

構文

getProperties(ctx IN OUT RAW,

docBfile IN OUT NOCOPY BFILE,

attributes IN OUT NOCOPY CLOB,

format IN VARCHAR2);

説明

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

パラメータ

ctx

フォーマット・プラグインのコンテキスト情報を指定します。

docBfile

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

attributes

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

format

ドキュメント・データのフォーマットを指定します。NULL以外の値を指定すると、このフォーマット・タイプのフォーマット・プラグインが起動します。

使用上の注意

なし

プラグマ

なし

例外

ORDDocExceptions.DOC_PLUGIN_EXCEPTION

この例外は、getProperties( )メソッドをコールし、ドキュメント・プラグインに例外が発生した場合に発生します。

ORDSourceExceptions.EMPTY_SOURCE

この例外は、source.local属性の値が1または0(TRUE)で、source.localData属性の値がNULLの場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

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

DECLARE
  doc_attrib CLOB;
  ctx RAW(64) :=NULL;
  doc_data BFILE := BFILENAME('DOCDIR','testvid.dat');
  doc_format VARCHAR2(160) := NULL;
BEGIN
   DBMS_LOB.CREATETEMPORARY(doc_attrib, FALSE, DBMS_LOB.CALL);
   ORDSYS.ORDDoc.getProperties(ctx, doc_data, doc_attrib, doc_format);

   DBMS_OUTPUT.put_line('Size of XML Annotations ' ||
                   TO_CHAR(DBMS_LOB.GETLENGTH(doc_attrib)));
EXCEPTION
   WHEN OTHERS THEN
   RAISE;
END;
/

BFILEのgetProperties( )(すべての属性)

構文

getProperties(ctx IN OUT RAW,

docBfile IN OUT NOCOPY BFILE,

attributes IN OUT NOCOPY CLOB,

mimeType OUT VARCHAR2,

format IN OUT VARCHAR2,

contentLength OUT INTEGER);

説明

ドキュメントBFILEデータを読み取ってサポートしているフォーマットのメディア属性の値を取得し、入力CLOBに格納して明示的パラメータとして戻します。このメソッドは、ドキュメント・データの属性(MIMEタイプ、コンテンツ長およびフォーマット)のプロパティを設定します。このメソッドは、XML形式で様々なフォーマット・プロパティおよびアプリケーション・プロパティをCLOBに移入します。

パラメータ

ctx

フォーマット・プラグインのコンテキスト情報を指定します。

docBfile

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

attributes

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

mimeType

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

format

ドキュメント・データのフォーマットを指定します。NULL以外の値を指定すると、このフォーマット・タイプのフォーマット・プラグインが起動します。それ以外の場合は、導出されたフォーマットが戻されます。

contentLength

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

使用上の注意

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

プラグマ

なし

例外

ORDDocExceptions.DOC_PLUGIN_EXCEPTION

この例外は、getProperties( )メソッドをコールし、ドキュメント・プラグインに例外が発生した場合に発生します。

ORDSourceExceptions.EMPTY_SOURCE

この例外は、source.local属性の値が1または0(TRUE)で、source.localData属性の値がNULLの場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

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

DECLARE
  doc_attrib        CLOB;
  ctx               RAW(64) :=NULL;
  doc_data          BFILE := BFILENAME('DOCDIR','testimg.dat');
  doc_mimeType      VARCHAR2(80);
  doc_format        VARCHAR2(32) := NULL;
  doc_contentLength NUMBER;
BEGIN
   DBMS_LOB.CREATETEMPORARY(doc_attrib, FALSE, DBMS_LOB.CALL);
   ORDSYS.ORDDoc.getProperties(ctx, doc_data, doc_attrib,
                  doc_mimeType, doc_format, doc_contentLength);
   DBMS_OUTPUT.put_line('Size of XML Annotations ' || TO_CHAR(DBMS_LOB.GETLENGTH(doc_attrib)));
   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;
/

BLOBのgetProperties( )

構文

getProperties(ctx IN OUT RAW,

docBlob IN BLOB,

attributes IN OUT NOCOPY CLOB,

format IN VARCHAR2);

説明

ドキュメントBLOBデータを読み取ってメディア属性の値を取得し、取得した値を入力CLOBに格納します。このメソッドは、XML形式で様々なフォーマット・プロパティおよびアプリケーション・プロパティをCLOBに移入します。

パラメータ

ctx

フォーマット・プラグインのコンテキスト情報を指定します。

docBlob

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

attributes

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

format

ドキュメント・データのフォーマットを指定します。NULL以外の値を指定すると、このフォーマット・タイプのフォーマット・プラグインが起動します。

使用上の注意

なし

プラグマ

なし

例外

ORDDocExceptions.DOC_PLUGIN_EXCEPTION

この例外は、getProperties( )メソッドをコールし、ドキュメント・プラグインに例外が発生した場合に発生します。

ORDSourceExceptions.EMPTY_SOURCE

この例外は、source.local属性の値が1または0(TRUE)で、source.localData属性の値がNULLの場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

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

DECLARE
  doc_attrib CLOB;
  ctx RAW(64) :=NULL;
  doc_data BLOB;
  doc_format VARCHAR2(160) := NULL;

BEGIN
    SELECT document,attributes INTO doc_data,doc_attrib FROM tdoc WHERE N = 1 FOR UPDATE;
   ORDSYS.ORDDoc.getProperties(ctx, doc_data, doc_attrib, doc_format);

   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;
/

BLOBのgetProperties( )(すべての属性)

構文

getProperties(ctx IN OUT RAW,

docBlob IN BLOB,

attributes IN OUT NOCOPY CLOB,

mimeType OUT VARCHAR2,

format IN OUT VARCHAR2,

contentLength OUT INTEGER);

説明

ドキュメントBLOBデータを読み取ってメディア属性の値を取得し、入力CLOBに格納して明示的パラメータとして戻します。このメソッドは、ドキュメント・データの属性(MIMEタイプ、コンテンツ長およびフォーマット)のプロパティを設定します。このメソッドは、XML形式で様々なフォーマット・プロパティおよびアプリケーション・プロパティをCLOBに移入します。

パラメータ

ctx

フォーマット・プラグインのコンテキスト情報を指定します。

docBlob

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

attributes

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

mimeType

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

format

ドキュメント・データのフォーマットを指定します。NULL以外の値を指定すると、このフォーマット・タイプのフォーマット・プラグインが起動します。

contentLength

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

使用上の注意

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

プラグマ

なし

例外

ORDDocExceptions.DOC_PLUGIN_EXCEPTION

この例外は、getProperties( )メソッドをコールし、ドキュメント・プラグインに例外が発生した場合に発生します。

ORDSourceExceptions.EMPTY_SOURCE

この例外は、source.local属性の値が1または0(TRUE)で、source.localData属性の値がNULLの場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

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

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

   ORDSYS.ORDDoc.getProperties(ctx, doc_data, doc_attrib,
                  doc_mimeType, doc_format, doc_contentLength);

   DBMS_OUTPUT.put_line('Size of XML Annotations ' ||
                   TO_CHAR(DBMS_LOB.GETLENGTH(doc_attrib)));
   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,
     attributes=doc_attrib,
     mimetype=doc_mimeType,
     format=doc_format,
     contentlength=doc_contentLength
    WHERE N=1;
   COMMIT;
EXCEPTION
   WHEN OTHERS THEN
   RAISE;
END;
/

ORDImageオブジェクト型のリレーショナル・インタフェースに固有のスタティック・メソッド

この項では、ORDImageリレーショナル・インタフェースに固有のOracle Multimediaスタティック・メソッドに関するリファレンス情報を示します。

リレーショナル・インタフェースは、ORDImageオブジェクト型ではなくBLOBおよびBFILEに格納されているイメージ・データへのOracle Multimediaサポートを追加します。 ORDImageリレーショナル・インタフェースに固有のスタティック・メソッドは、ordispec.sqlファイルで定義されています。

例で使用されるイメージ表の定義

この項で説明するメソッドでは、テスト用のイメージ表TIMGに基づいて例が示されています。例を参照する際は、次のTIMG表の定義を参照してください。

TIMG表の定義

CREATE TABLE timg(n NUMBER,
                  img BLOB,
                  attributes CLOB,
                  mimetype VARCHAR2(4000),
                  width INTEGER,
                  height INTEGER,
                  fileformat VARCHAR2(4000),
                  contentformat VARCHAR2(4000),
                  compressionformat VARCHAR2(4000),
                  contentlength INTEGER)
LOB(img) STORE AS SECUREFILE;

INSERT INTO timg VALUES(1, EMPTY_BLOB(), EMPTY_CLOB(), NULL,
                        NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO timg VALUES(2, EMPTY_BLOB(), EMPTY_CLOB(), NULL,
                        NULL, NULL, NULL, NULL, NULL, NULL);
COMMIT;

BFILEのgetDicomMetadata( )

構文

getDicomMetadata(imageBfile IN BFILE,

optionString IN VARCHAR2)

RETURN XMLType;

説明

BFILEに格納されているDICOMイメージから抽出されたメタデータのXML表現を戻します。DICOMで使用するXMLスキーマの詳細は、付録Fを参照してください。

パラメータ

imageBfile

BFILEで格納されるDICOMイメージ・データを指定します。

optionString

抽出するDICOMメタデータのタイプを指定する文字列です。今回のリリースで有効な値は、imageGeneralのみです。その他のすべての値は無視されます。

使用上の注意

DICOM規格は、バイナリ・ストリームでのDICOMオブジェクトのエンコーディングに関する様々な規定を定義しています。Oracle MultimediaでサポートされているDICOMエンコーディング規則の詳細は、付録Gを参照してください。

DICOMの機能の詳細は、『Oracle Multimediaユーザーズ・ガイド』を参照してください。

プラグマ

なし

例外

ORDImageExceptions.NULL_CONTENT

この例外は、イメージがNULLの場合に発生します。

この例外の詳細は、付録Hを参照してください。

DECLARE
    local_imageBFile BFILE;
    dicom_metadata XMLType := NULL;

BEGIN
    SELECT imageBFile INTO local_imageBFile FROM medicalImageFilesTable WHERE id = 1;
    dicom_metadata := ORDSYS.ORDImage.getDicomMetadata(local_imageBfile,'imageGeneral');
    IF (dicom_metadata is NULL) THEN
        DBMS_OUTPUT.PUT_LINE('dicom metadata is NULL');
    END IF;

    -- print the value of the one of the elements in extracted
    -- dicom metadata

    DBMS_OUTPUT.PUT_LINE('namespace: ' || dicom_metadata.getNamespace() );

    EXCEPTION
    WHEN ORDSYS.ORDImageExceptions.NULL_CONTENT THEN
       DBMS_OUTPUT.PUT_LINE('imageBfile is null ');
    WHEN OTHERS THEN
       RAISE;
END;/

BLOBのgetDicomMetadata( )

構文

getDicomMetadata(imageBlob IN BLOB,

optionString IN VARCHAR2)

RETURN XMLType;

説明

BLOBに格納されているDICOMイメージから抽出されたメタデータのXML表現を戻します。DICOMで使用するXMLスキーマの詳細は、付録Fを参照してください。

パラメータ

imageBlob

BLOBで格納されるDICOMイメージ・データを指定します。

optionString

抽出するDICOMメタデータのタイプを指定する文字列です。今回のリリースで有効な値は、imageGeneralのみです。その他のすべての値は無視されます。

使用上の注意

DICOM規格は、バイナリ・ストリームでのDICOMオブジェクトのエンコーディングに関する様々な規定を定義しています。Oracle MultimediaでサポートされているDICOMエンコーディング規則の詳細は、付録Gを参照してください。

DICOMの機能の詳細は、『Oracle Multimediaユーザーズ・ガイド』を参照してください。

プラグマ

なし

例外

ORDImageExceptions.NULL_CONTENT

この例外は、イメージがNULLの場合に発生します。

この例外の詳細は、付録Hを参照してください。

DECLARE
    local_imageBlob BLOB;
    dicom_metadata XMLType := NULL;

BEGIN
    SELECT imageBlob INTO local_imageBlob FROM medicalImageBlobsTable WHERE id = 1;
    dicom_metadata := ORDSYS.ORDImage.getDicomMetadata(local_imageBlob,'imageGeneral');
    IF (dicom_metadata is NULL) THEN
        DBMS_OUTPUT.PUT_LINE('dicom metadata is NULL');
    END IF;

    -- print the value of the one of the elements in extracted
    -- dicom metadata

    DBMS_OUTPUT.PUT_LINE('namespace: ' || dicom_metadata.getNamespace() );

    EXCEPTION
    WHEN ORDSYS.ORDImageExceptions.NULL_CONTENT THEN
       DBMS_OUTPUT.PUT_LINE('imageBlob is null ');
    WHEN OTHERS THEN
       RAISE;
END;/

BFILEのgetMetadata( )

構文

getMetadata(imageBfile IN NOCOPY BFILE,

metadataType IN VARCHAR2 DEFAULT 'ALL'

RETURN XMLSequenceType;

説明

指定したタイプのメタデータをimageBfileから抽出し、スキーマが妥当なXML文書の配列を戻します。一致するメタデータが検出されなかった場合は、空の配列が戻されます。

パラメータ

imageBfile

BFILEで格納されるイメージ・データを指定します。

metadataType

抽出する埋込みメタデータのタイプを指定する文字列です。有効な値は、ALL、ORDIMAGE、XMP、EXIFおよびIPTC-IIMです。デフォルト値はALLです。

使用上の注意

入力パラメータmetadataTypeの値がALLで、複数のタイプのサポートされるメタデータがイメージに存在する場合、このメソッドは複数のXML文書(検出されたメタデータのタイプごとに1つ)を戻します。入力パラメータの値が他の値の場合、このメソッドは0(ゼロ)または1つのXML文書を戻します。

各文書は、XMLTypeのインスタンスとして格納され、いずれかのメタデータ・スキーマに基づいていてます。メソッドXMLType.getNamespace( )を使用して、文書に記述されるメタデータのタイプを定義できます。

サポートされるメタデータ・スキーマの詳細は、付録Fを参照してください。

メタデータの機能の詳細は、『Oracle Multimediaユーザーズ・ガイド』を参照してください。

プラグマ

なし

例外

ORDImageExceptions.NULL_CONTENT

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

この例外の詳細は、付録Hを参照してください。

DECLARE
  imageBfile  BFILE := BFILENAME('MEDIA_DIR','keyboard.jpg');
  metav       XMLSequenceType;
BEGIN

  metav := ORDSYS.ORDImage.getMetadata(imageBfile, 'ALL');

  -- print the namespace of each metadata document
  FOR i in 1..metav.count LOOP
    DBMS_OUTPUT.PUT_LINE('namespace: ' || metav(i).getNamespace() );
  END LOOP;

  EXCEPTION
  WHEN ORDSYS.ORDImageExceptions.NULL_CONTENT THEN
    DBMS_OUTPUT.PUT_LINE('imageBlob is null');
  WHEN OTHERS THEN
    RAISE;
END; /

BLOBのgetMetadata( )

構文

getMetadata(imageBlob IN NOCOPY BLOB,

metadataType IN VARCHAR2 DEFAULT 'ALL')

RETURN XMLSequenceType;

説明

指定したタイプのメタデータをimageBlobから抽出し、スキーマが妥当なXML文書の配列を戻します。一致するメタデータが検出されなかった場合は、空の配列が戻されます。

パラメータ

imageBlob

BLOBで格納されるイメージ・データを指定します。

metadataType

抽出する埋込みメタデータのタイプを指定する文字列です。有効な値は、ALL、ORDIMAGE、XMP、EXIFおよびIPTC-IIMです。デフォルト値はALLです。

使用上の注意

入力パラメータmetadataTypeの値がALLで、複数のタイプのサポートされるメタデータがイメージに存在する場合、このメソッドは複数のXML文書(検出されたメタデータのタイプごとに1つ)を戻します。入力パラメータの値が他の値の場合、このメソッドは0(ゼロ)または1つのXML文書を戻します。

各文書は、XMLTypeのインスタンスとして格納され、いずれかのメタデータ・スキーマに基づいていてます。メソッドXMLType.getNamespace( )を使用して、文書に記述されるメタデータのタイプを定義できます。

サポートされるメタデータ・スキーマの詳細は、付録Fを参照してください。

メタデータの機能の詳細は、『Oracle Multimediaユーザーズ・ガイド』を参照してください。

プラグマ

なし

例外

ORDImageExceptions.NULL_CONTENT

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

この例外の詳細は、付録Hを参照してください。

DECLARE
  imageBlob BLOB;
  metav     XMLSequenceType;
BEGIN
  SELECT ad_photo
  INTO imageBlob
  FROM pm.print_media
  WHERE product_id = 3106;

  metav := ORDSYS.ORDImage.getMetadata(imageBlob, 'ALL');

  -- print the namespace of each metadata document
  FOR i in 1..metav.count LOOP
    DBMS_OUTPUT.PUT_LINE('namespace: ' || metav(i).getNamespace() );
  END LOOP;

  EXCEPTION
  WHEN ORDSYS.ORDImageExceptions.NULL_CONTENT THEN
    DBMS_OUTPUT.PUT_LINE('imageBlob is null');
  WHEN OTHERS THEN
    RAISE;
END; /

BFILEのgetProperties( )

構文

getProperties(imageBfile IN OUT NOCOPY BFILE,

attributes IN OUT NOCOPY CLOB);

説明

イメージBFILEデータを読み取ってサポートしているフォーマットのメディア属性の値を取得し、入力CLOBに格納します。このメソッドは、XML形式で一連のフォーマット・プロパティをCLOBに移入します。

パラメータ

imageBfile

BFILEで格納されるイメージ・データを指定します。

attributes

getProperties( )メソッドによって生成されたXML属性情報を格納するCLOBを指定します。このCLOBには、XML形式でイメージBFILEデータのフォーマット・プロパティが移入されます。

使用上の注意

なし

プラグマ

なし

例外

ORDImageExceptions.NULL_CONTENT

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

この例外の詳細は、付録Hを参照してください。

既知のイメージ属性のプロパティ情報を取得します。

DECLARE
  img_attrib CLOB;
  data BFILE := BFILENAME('IMAGEDIR','testimg.dat');
BEGIN
   DBMS_LOB.CREATETEMPORARY(img_attrib, FALSE, DBMS_LOB.CALL);
   ORDSYS.ORDImage.getProperties(data, img_attrib);

   DBMS_OUTPUT.put_line('Size of XML Annotations ' ||
                   TO_CHAR(DBMS_LOB.GETLENGTH(img_attrib)));
EXCEPTION
   WHEN OTHERS THEN
   RAISE;
END;
/

BFILEのgetProperties( )(すべての属性)

構文

getProperties(imageBfile IN OUT NOCOPY BFILE,

attributes IN OUT NOCOPY CLOB,

mimeType OUT VARCHAR2,

width OUT INTEGER,

height OUT INTEGER,

fileFormat OUT VARCHAR2,

contentFormat OUT VARCHAR2,

compressionFormat OUT VARCHAR2,

contentLength OUT INTEGER);

説明

イメージBFILEデータを読み取ってサポートしているフォーマットのメディア属性の値を取得し、入力CLOBに格納して明示的パラメータとして戻します。このメソッドは、イメージ・データの属性のプロパティを取得します。属性には、MIMEタイプ、幅、高さ、ファイル・フォーマット、コンテンツ・フォーマット、圧縮タイプおよびコンテンツ長があります。このメソッドは、XML形式で一連のフォーマット・プロパティをCLOBに移入します。

パラメータ

imageBfile

BFILEで格納されるイメージ・データを指定します。

attributes

getProperties( )メソッドによって生成されたXML属性情報を格納するCLOBを指定します。このCLOBには、XML形式でイメージBFILEデータのフォーマット・プロパティが移入されます。

mimeType

イメージ・データのMIMEタイプが戻されます。

width

イメージの幅がピクセル単位で戻されます。

height

イメージの高さがピクセル単位で戻されます。

fileFormat

イメージ・データのフォーマットが戻されます。

contentFormat

イメージのタイプ(モノクロなど)が戻されます。

compressionFormat

イメージ・データに使用される圧縮アルゴリズムが戻されます。

contentLength

ディスク上のイメージ・ファイルのサイズがバイト単位で戻されます。

使用上の注意

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

プラグマ

なし

例外

ORDImageExceptions.NULL_CONTENT

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

この例外の詳細は、付録Hを参照してください。

既知のイメージ属性のプロパティ情報を取得します。

DECLARE
  img_data          BFILE := BFILENAME('IMAGEDIR','testimg.dat');
  img_attrib        CLOB;
  mimeType          VARCHAR2(80);
  width             NUMBER;
  height            NUMBER;
  fileFormat        VARCHAR2(32);
  contentFormat     VARCHAR2(4000);
  compressionFormat VARCHAR2(4000);
  contentLength     NUMBER;
BEGIN
   DBMS_LOB.CREATETEMPORARY(img_attrib, FALSE, DBMS_LOB.CALL);

  ORDSYS.ORDImage.getProperties(img_data, img_attrib,
         mimeType, width, height, fileFormat,
         contentFormat, compressionFormat, contentLength);

   DBMS_OUTPUT.put_line('Size of XML Annotations ' ||
                   TO_CHAR(DBMS_LOB.GETLENGTH(img_attrib)));
   DBMS_OUTPUT.put_line('mimeType: ' || mimeType );
   DBMS_OUTPUT.put_line('width: ' || width );
   DBMS_OUTPUT.put_line('height: ' || height );
   DBMS_OUTPUT.put_line('fileFormat: ' || fileFormat );
   DBMS_OUTPUT.put_line('contentFormat: ' || contentFormat );
   DBMS_OUTPUT.put_line('compressionFormat: ' || compressionFormat );
   DBMS_OUTPUT.put_line('contentLength: ' || contentLength );
EXCEPTION
   WHEN OTHERS THEN
   RAISE;
END;
/

BLOBのgetProperties( )

構文

getProperties(imageBlob IN BLOB,

attributes IN OUT NOCOPY CLOB);

説明

イメージBLOBデータを読み取ってサポートしているフォーマットのメディア属性の値を取得し、入力CLOBに格納します。このメソッドは、XML形式で一連のフォーマット・プロパティをCLOBに移入します。

パラメータ

imageBlob

BLOBで格納されるイメージ・データを指定します。

attributes

getProperties( )メソッドによって生成されたXML属性情報を格納するCLOBを指定します。このCLOBには、XML形式でイメージBLOBデータのフォーマット・プロパティが移入されます。

使用上の注意

なし

プラグマ

なし

例外

ORDImageExceptions.NULL_CONTENT

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

この例外の詳細は、付録Hを参照してください。

既知のイメージ属性のプロパティ情報を取得します。

DECLARE
  img_attrib CLOB;
  img_data BLOB;
BEGIN
   SELECT img, attributes INTO img_data, img_attrib FROM timg WHERE N = 1 FOR UPDATE;
   ORDSYS.ORDImage.getProperties(img_data, img_attrib);

   DBMS_OUTPUT.put_line('Size of XML Annotations ' ||
                   TO_CHAR(DBMS_LOB.GETLENGTH(img_attrib)));
   UPDATE timg SET img=img_data, attributes=img_attrib WHERE N=1;
   COMMIT;
EXCEPTION
   WHEN OTHERS THEN
   RAISE;
END;
/

BLOBのgetProperties( )(すべての属性)

構文

getProperties(imageBlob IN BLOB,

attributes IN OUT NOCOPY CLOB,

mimeType OUT VARCHAR2,

width OUT INTEGER,

height OUT INTEGER,

fileFormat OUT VARCHAR2,

contentFormat OUT VARCHAR2,

compressionFormat OUT VARCHAR2,

contentLength OUT INTEGER);

説明

イメージBLOBデータを読み取ってサポートしているフォーマットのメディア属性の値を取得し、入力CLOBに格納して明示的パラメータとして戻します。このメソッドは、イメージ・データの属性のプロパティを取得します。属性には、MIMEタイプ、幅、高さ、ファイル・フォーマット、コンテンツ・フォーマット、圧縮タイプおよびコンテンツ長があります。このメソッドは、XML形式で一連のフォーマット・プロパティをCLOBに移入します。

パラメータ

imageBlob

BLOBで格納されるイメージ・データを指定します。

attributes

getProperties( )メソッドによって生成されたXML属性情報を格納するCLOBを指定します。このCLOBには、XML形式でイメージBLOBデータのフォーマット・プロパティが移入されます。

mimeType

イメージ・データのMIMEタイプが戻されます。

width

イメージの幅がピクセル単位で戻されます。

height

イメージの高さがピクセル単位で戻されます。

fileFormat

イメージ・データのフォーマットが戻されます。

contentFormat

イメージのタイプ(モノクロなど)が戻されます。

compressionFormat

イメージ・データに使用される圧縮アルゴリズムが戻されます。

contentLength

ディスク上のイメージ・ファイルのサイズがバイト単位で戻されます。

使用上の注意

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

プラグマ

なし

例外

ORDImageExceptions.NULL_CONTENT

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

この例外の詳細は、付録Hを参照してください。

既知のイメージ属性のプロパティ情報を取得します。

DECLARE
  img_data              BLOB;
  img_attrib        CLOB;
  mimeType          VARCHAR2(4000);
  width             NUMBER;
  height            NUMBER;
  fileFormat        VARCHAR2(32);
  contentFormat     VARCHAR2(4000);
  compressionFormat VARCHAR2(4000);
  contentLength     NUMBER;
BEGIN
   SELECT img, attributes, mimetype, width, height, fileformat, contentformat,
     compressionformat, contentlength INTO img_data, img_attrib, mimeType, width,
     height, fileFormat, contentFormat, compressionFormat, contentLength
     FROM timg WHERE N = 1 FOR UPDATE;

  ORDSYS.ORDImage.getProperties(img_data, img_attrib,
         mimeType, width, height, fileFormat,
         contentFormat, compressionFormat, contentLength);

   DBMS_OUTPUT.put_line('Size of XML Annotations ' ||
                   TO_CHAR(DBMS_LOB.GETLENGTH(img_attrib)));
   DBMS_OUTPUT.put_line('mimeType: ' || mimeType );
   DBMS_OUTPUT.put_line('width: ' || width );
   DBMS_OUTPUT.put_line('height: ' || height );
   DBMS_OUTPUT.put_line('fileFormat: ' || fileFormat );
   DBMS_OUTPUT.put_line('contentFormat: ' || contentFormat );
   DBMS_OUTPUT.put_line('compressionFormat: ' || compressionFormat );
   DBMS_OUTPUT.put_line('contentLength: ' || contentLength );
   UPDATE timg SET
       img=img_data,
       attributes=img_attrib,
       mimetype=mimeType,
       width=width,
       height=height,
       fileformat=fileFormat,
       contentformat=contentFormat,
       compressionformat=compressionFormat,
       contentlength=contentLength
    WHERE N=1;
   COMMIT;
EXCEPTION
   WHEN OTHERS THEN
   RAISE;
END;
/

process( )

構文

process(imageBlob IN OUT NOCOPY BLOB,

command IN VARCHAR2);

説明

BLOB上でイメージ処理操作を実行し、イメージを上書きします。

パラメータ

imageBlob

BLOBで格納されるイメージ・データを指定します。

command

実行するイメージ処理操作のリストを指定します。

使用上の注意

表5-1に示す1つ以上のイメージ属性を変更できます。表5-2には、ロー・ピクセルおよび外部イメージに対してのみ追加で変更可能な演算子を示します。

process( )演算子の詳細は、付録Dを参照してください。

process( )メソッドはイメージ属性を変更します。そのため、イメージ属性を格納する場合は、process( )メソッドをコールした後にgetProperties( )メソッドをコールする必要があります。

プラグマ

なし

例外

ORDImageExceptions.DATA_NOT_LOCAL

この例外は、process( )メソッドをコールし、imageBlobパラメータが初期化されていない場合に発生します。

この例外の詳細は、付録Hを参照してください。

例1:

image_data BLOBのイメージの圧縮タイプをより高い品質のJPEG圧縮に変更し、イメージの長さをX軸方向に倍にします。

ORDSYS.ORDImage.process(
image_data,'compressionFormat=JPEG,compressionQuality=MAXCOMPRATIO, xScale="2.0"');

注意:

一方の軸の長さを変更しても(xScale=2.0など)他方の軸の長さは影響を受けず、その結果、イメージがゆがむことに注意してください。また、1回のスケール操作では、xScaleとyScaleパラメータのみを組み合せることができます。それ以外のスケール演算子の組合せではエラーが発生します。

例2:

元のアスペクト比を保持したまま32×32ピクセルの縮小イメージを作成します。maxScaleおよびfixedScale演算子は、様々なサイズの元のイメージから縮小イメージを作成する場合に特に便利です。

ORDSYS.ORDImage.process(image_data, 'maxScale=32 32');

例3:

イメージをTIFFに変換します。

DECLARE
img_attrib CLOB;
image_data BLOB;
BEGIN
   SELECT img, attributes INTO image_data, img_attrib FROM timg
     WHERE N = 1 FOR UPDATE;
   ORDSYS.ORDImage.process(image_data, 'fileFormat=TIFF');
   ORDSYS.ORDImage.getProperties(image_data, img_attrib);
   UPDATE timg SET img = image_data, attributes=img_attrib WHERE N = 1;
   COMMIT;
EXCEPTION
   WHEN OTHERS THEN
   RAISE;
END;
/

BFILEのprocessCopy( )

構文

processCopy(imageBfile IN OUT NOCOPY BFILE,

command IN VARCHAR2,

dest IN OUT NOCOPY BLOB);

説明

内部的または外部的に格納されたイメージを、(埋込みORDSourceオブジェクトの)source.localData属性に内部的に格納された別のイメージにコピーして、そのコピーに対してイメージ処理操作を実行します。

パラメータ

imageBfile

BFILEで格納されるイメージ・データを指定します。

command

新しくコピーしたイメージに対する変更処理を指定します。

dest

新しいイメージのコピー先を指定します。

使用上の注意

イメージ処理演算子の詳細は、表5-1および表5-2を参照してください。

このメソッドをコールすると、任意のソースBFILEからコピー先BLOBへイメージが処理されます。

processCopy( )メソッドはイメージ属性を変更します。そのため、イメージ属性を格納する場合は、processCopy( )メソッドをコールした後にコピー先イメージでgetProperties( )メソッドをコールする必要があります。

processCopy( )演算子の詳細は、付録Dを参照してください。

プラグマ

なし

例外

ORDImageExceptions.NULL_DESTINATION

この例外は、processCopy( )メソッドをコールし、コピー先イメージの値がNULLの場合に発生します。

ORDImageExceptions.NULL_LOCAL_DATA

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

これらの例外の詳細は、付録Hを参照してください。

イメージをコピーし、コピー先のイメージにおいて最大32×32ピクセルの縮小イメージを生成します。

DECLARE
  dest_attrib      CLOB;
  image_data       BFILE := BFILENAME('IMAGEDIR','testimg.dat');
  destination_data BLOB;
  the_Command      VARCHAR2(4000);
BEGIN
   SELECT img, attributes INTO destination_data, dest_attrib FROM timg
       WHERE N = 2 FOR UPDATE;

   the_Command := 'maxScale=32 32';
   ORDSYS.ORDImage.processCopy(image_data, the_Command, destination_data);
   ORDSYS.ORDImage.getProperties(destination_data, dest_attrib);
   UPDATE timg SET img = destination_data, attributes=dest_attrib WHERE N = 2;
   COMMIT;
EXCEPTION
   WHEN OTHERS THEN
   RAISE;
END;
/

BLOBのprocessCopy( )

構文

processCopy(imageBlob IN BLOB,

command IN VARCHAR2,

dest IN OUT NOCOPY BLOB);

説明

内部的または外部的に格納されたイメージを、(埋込みORDSourceオブジェクトの)source.localData属性に内部的に格納された別のイメージにコピーして、そのコピーに対してイメージ処理操作を実行します。

パラメータ

imageBlob

BLOBで格納されるソース・イメージ・データを指定します。

command

新しくコピーしたイメージに対する変更処理を指定します。

dest

新しいイメージのコピー先を指定します。

使用上の注意

イメージ処理演算子の詳細は、表5-1および表5-2を参照してください。

一時LOBには読取り一貫性がないため、同じ一時LOBをimageBlobパラメータおよびdestパラメータの両方に使用することはできません。

このメソッドをコールすると、任意のソースBLOBからコピー先BLOBへイメージが処理されます。

processCopy( )メソッドはイメージ属性を変更します。そのため、イメージ属性を格納する場合は、processCopy( )メソッドをコールした後にコピー先イメージでgetProperties( )メソッドをコールする必要があります。

processCopy( )演算子の詳細は、付録Dを参照してください。

プラグマ

なし

例外

ORDImageExceptions.DATA_NOT_LOCAL

この例外は、processCopy( )メソッドをコールし、imageBlobパラメータが初期化されていない場合に発生します。

この例外の詳細は、付録Hを参照してください。

イメージをコピーし、コピー先イメージのファイル・フォーマット、圧縮タイプおよびコンテンツ・フォーマットを変更します。

DECLARE
  dest_attrib      CLOB;
  image_data       BLOB;
  destination_data BLOB;
  the_Command      VARCHAR2(4000);
BEGIN
   SELECT img INTO image_data FROM timg WHERE N = 1;
   SELECT img, attributes INTO destination_data, dest_attrib FROM timg
      WHERE N = 2 FOR UPDATE;

   the_Command := 'fileFormat=tiff, compressionFormat=packbits, contentFormat=8bitlut';
   ORDSYS.ORDImage.processCopy(image_data, the_Command, destination_data);
   ORDSYS.ORDImage.getProperties(destination_data, dest_attrib);
   UPDATE timg SET img = destination_data, attributes=dest_attrib WHERE N = 2;
   COMMIT;
EXCEPTION
   WHEN OTHERS THEN
   RAISE;
END;
/

BFILEのputMetadata( )

構文

putMetadata(imageBfile IN NOCOPY BFILE,

dest IN OUT NOCOPY BLOB

xmlData IN NOCOPY XMLType,

metadataType IN VARCHAR2 DEFAULT 'XMP',

encoding IN VARCHAR2 DEFAULT "UTF-8");

説明

イメージが含まれているBFILEおよびスキーマが妥当なXML文書を受け入れ、ターゲット・イメージのファイル・フォーマットへの埋込みに適したバイナリ・パケットを作成します。このパケットは、エンコーディング・パラメータの値に基づいてエンコードされます。metadataTypeパラメータの値がXMPの場合、新しいXMPパケットがイメージに書き込まれ、既存のXMPパケットと置き換えられます。埋込みメタデータが含まれている新しいイメージ・ファイルは、destパラメータに戻されます。

パラメータ

imageBfile

イメージに対するBFILEハンドルを指定します。

dest

埋込みメタデータが含まれているイメージを受け取るBLOBを指定します。

xmlData

指定したmetadataTypeに対してスキーマが妥当なXML文書を含むXMLTypeを指定します。metadataTypeパラメータの値がXMPの場合は、ルート要素に整形式RDF文書が含まれている必要があります。

metadataType

書き込むメタデータのタイプを指定する文字列です。有効な値はXMPで、この値がデフォルトです。

encoding

イメージ・ファイルで使用される文字コードを指定します。有効な値は、UTF-8、UTF-16、UTF-16BEおよびUTF-16LEです。デフォルトはUTF-8です。

使用上の注意

同じxmlData入力から生成されたバイナリ・メタデータ・パケットのサイズは、エンコーディングによって異なる場合があります。サポートされるエンコーディングはイメージ・ファイル・フォーマットによって異なり、バイナリ・メタデータ・パケットのサイズが制限される場合があります。サポートされる各イメージ・フォーマットの制限を次に示します。

メタデータの機能の詳細は、『Oracle Multimediaユーザーズ・ガイド』を参照してください。

プラグマ

なし

例外

ORDImageExceptions.NULL_CONTENT

この例外は、イメージがNULLの場合に発生します。

ORDImageExceptions.NULL_DESTINATION

この例外は、宛先イメージがNULLの場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

DECLARE
  imageBfile        BFILE := BFILENAME('MEDIA_DIR','keyboard.jpg');
  dest              BLOB;
  xmlData           XMLType;
BEGIN
  SELECT ad_photo
  INTO dest
  FROM pm.print_media
  WHERE product_id = 3106 FOR UPDATE;

  xmlData := xmltype(
          '<xmpMetadata xmlns="http://xmlns.oracle.com/ord/meta/xmp">' ||
          '<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"' ||
          '  xmlns:dc="http://purl.org/dc/elements/1.1/">' ||
          '<rdf:Description>' ||
          '  <dc:rights>' ||
          '    <rdf:Alt>' ||
          '      <rdf:li xml:lang="en-us">' ||
          '        Oracle Corporation' ||
          '      </rdf:li>' ||
          '    </rdf:Alt>'||
          '  </dc:rights>' ||
          '</rdf:Description>' ||
          '</rdf:RDF>' ||
          '</xmpMetadata>', 'http://xmlns.oracle.com/ord/meta/xmp');

  ORDSYS.ORDImage.putMetadata(imageBfile, dest, xmlData, 'xmp', 'utf-8');

  UPDATE pm.print_media
  SET ad_photo = dest
  WHERE product_id = 3106;
  COMMIT;

  EXCEPTION
    WHEN ORDSYS.ORDImageExceptions.NULL_CONTENT THEN
      DBMS_OUTPUT.PUT_LINE('image source is null');
    WHEN ORDSYS.ORDImageExceptions.NULL_DESTINATION THEN
      DBMS_OUTPUT.PUT_LINE('image destionation is null');
    WHEN OTHERS THEN
    RAISE;
END;/

BLOBのputMetadata( )

構文

putMetadata(imageBlob IN NOCOPY BLOB,

dest IN OUT NOCOPY BLOB

xmlData IN NOCOPY XMLType,

metadataType IN VARCHAR2 DEFAULT 'XMP',

encoding IN VARCHAR2 DEFAULT "UTF-8");

説明

イメージが含まれているBLOBおよびスキーマが妥当なXML文書を受け入れ、ターゲット・イメージのファイル・フォーマットへの埋込みに適したバイナリ・パケットを作成します。このパケットは、エンコーディング・パラメータの値に基づいてエンコードされます。metadataTypeパラメータの値がXMPの場合、新しいXMPパケットがイメージに書き込まれ、既存のXMPパケットと置き換えられます。埋込みメタデータが含まれている新しいイメージ・ファイルは、destパラメータに戻されます。

パラメータ

imageBlob

イメージに対するBLOBハンドルを指定します。

dest

埋込みメタデータが含まれているイメージを受け取るBLOBを指定します。

xmlData

指定したmetadataTypeに対してスキーマが妥当なXML文書を含むXMLTypeを指定します。metadataTypeパラメータの値がXMPの場合は、ルート要素に整形式RDF文書が含まれている必要があります。

metadataType

書き込むメタデータのタイプを指定する文字列です。有効な値はXMPで、この値がデフォルトです。

encoding

イメージ・ファイルで使用される文字コードを指定します。有効な値は、UTF-8、UTF-16、UTF-16BEおよびUTF-16LEです。デフォルトはUTF-8です。

使用上の注意

一時LOBには読取り一貫性がないため、1つの一時LOBをimageBlobパラメータおよびdestパラメータの両方で使用することはできません。同じxmlData入力から生成されたバイナリ・メタデータ・パケットのサイズは、エンコーディングによって異なる場合があります。サポートされるエンコーディングはイメージ・ファイル・フォーマットによって異なり、バイナリ・メタデータ・パケットのサイズが制限される場合があります。サポートされる各イメージ・フォーマットの制限を次に示します。

メタデータの機能の詳細は、『Oracle Multimediaユーザーズ・ガイド』を参照してください。

プラグマ

なし

例外

ORDImageExceptions.NULL_CONTENT

この例外は、イメージがNULLの場合に発生します。

ORDImageExceptions.NULL_DESTINATION

この例外は、宛先イメージがNULLの場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

DECLARE
  imageBlob        BLOB;
  tmp              BLOB;
  xmlData          XMLType;
  ctx              RAW(64):=NULL;
BEGIN
  SELECT ad_photo
  INTO imageBlob
  FROM pm.print_media
  WHERE product_id = 3106 FOR UPDATE;

  xmlData := xmltype(
          '<xmpMetadata xmlns="http://xmlns.oracle.com/ord/meta/xmp">' ||
          '<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"' ||
          '  xmlns:dc="http://purl.org/dc/elements/1.1/">' ||
          '<rdf:Description>' ||
          '  <dc:rights>' ||
          '    <rdf:Alt>' ||
          '      <rdf:li xml:lang="en-us">' ||
          '        Oracle Corporation' ||
          '      </rdf:li>' ||
          '    </rdf:Alt>'||
          '  </dc:rights>' ||
          '</rdf:Description>' ||
          '</rdf:RDF>' ||
          '</xmpMetadata>', 'http://xmlns.oracle.com/ord/meta/xmp');

  tmp := imageBlob;
  ORDSYS.ORDImage.putMetadata(tmp, imageBlob, xmlData, 'xmp', 'utf-8');

  UPDATE pm.print_media
  SET ad_photo = imageBlob
  WHERE product_id = 3106;
  COMMIT;

  EXCEPTION
    WHEN ORDSYS.ORDImageExceptions.NULL_CONTENT THEN
      DBMS_OUTPUT.PUT_LINE('image source is null');
    WHEN ORDSYS.ORDImageExceptions.NULL_DESTINATION THEN
      DBMS_OUTPUT.PUT_LINE('image destionation is null');
    WHEN OTHERS THEN
      RAISE;
END;/

ORDVideoオブジェクト型のリレーショナル・インタフェースに固有のスタティック・メソッド

この項では、ORDVideoリレーショナル・インタフェースに固有のOracle Multimediaスタティック・メソッドに関するリファレンス情報を示します。

リレーショナル・インタフェースは、ORDVideoオブジェクト型ではなくBLOBおよびBFILEに格納されているビデオ・データへのOracle Multimediaサポートを追加します。 ORDVideoリレーショナル・インタフェースに固有のスタティック・メソッドは、ordvspec.sqlファイルで定義されています。

例で使用されるビデオ表の定義

この項で説明するメソッドでは、テスト用のビデオ表TVIDに基づいて例が示されています。例を参照する際は、次のTVID表の定義を参照してください。

TVID表の定義

CREATE TABLE tvid(n NUMBER,
                  vid BLOB,
                  attributes CLOB,
                  mimetype VARCHAR2(4000),
                  format VARCHAR2(31),
                  width INTEGER,
                  height INTEGER,
                  frameresolution INTEGER,
                  framerate INTEGER,
                  videoduration INTEGER,
                  numberofframes INTEGER,
                  compressiontype VARCHAR2(4000),
                  numberofcolors INTEGER,
                  bitrate INTEGER)
LOB(vid) STORE AS SECUREFILE;

INSERT INTO tvid VALUES(1, EMPTY_BLOB(), EMPTY_CLOB(), NULL, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
INSERT INTO tvid VALUES(2, EMPTY_BLOB(), EMPTY_CLOB(), NULL, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
COMMIT;

BFILEのgetProperties( )

構文

getProperties(ctx IN OUT RAW,

videoBfile IN OUT NOCOPY BFILE,

attributes IN OUT NOCOPY CLOB,

format IN VARCHAR2);

説明

ビデオBFILEデータを読み取ってサポートしているフォーマットのメディア属性の値を取得し、入力CLOBに格納します。このメソッドは、XML形式で様々なフォーマット・プロパティおよびアプリケーション・プロパティをCLOBに移入します。

パラメータ

ctx

フォーマット・プラグインのコンテキスト情報を指定します。

videoBfile

BFILEで格納されるビデオ・データを指定します。

attributes

getProperties( )メソッドによって生成されたXML属性情報を格納するCLOBを指定します。このCLOBには、XML形式でビデオBFILEデータの様々なフォーマット・プロパティおよびアプリケーション・プロパティが移入されます。

format

ビデオ・データのフォーマットを指定します。NULL以外の値を指定すると、このフォーマット・タイプのフォーマット・プラグインが起動します。

使用上の注意

なし

プラグマ

なし

例外

ORDSourceExceptions.EMPTY_SOURCE

この例外は、source.local属性の値が1または0(TRUE)で、source.localData属性の値がNULLの場合に発生します。

ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION

この例外は、getProperties( )メソッドをコールし、ビデオ・プラグインに例外が発生した場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

既知のビデオ属性のプロパティ情報を取得します。

DECLARE
  vid_attrib CLOB;
  ctx RAW(64) :=NULL;
  vid_data BFILE := BFILENAME('VIDEODIR','testvid.dat');
  vid_format VARCHAR2(160) := NULL;
BEGIN
  DBMS_LOB.CREATETEMPORARY(vid_attrib, FALSE, DBMS_LOB.CALL);
  ORDSYS.ORDVideo.getProperties(ctx, vid_data, vid_attrib, vid_format);

  DBMS_OUTPUT.put_line('Size of XML Annotations ' ||
                   TO_CHAR(DBMS_LOB.GETLENGTH(vid_attrib)));
EXCEPTION
  WHEN OTHERS THEN
  RAISE;
END;
/

BFILEのgetProperties( )(すべての属性)

構文

getProperties(ctx IN OUT RAW,

videoBfile IN OUT NOCOPY BFILE,

attributes IN OUT NOCOPY CLOB,

mimeType OUT VARCHAR2,

format IN OUT VARCHAR2,

width OUT INTEGER,

height OUT INTEGER,

frameResolution OUT INTEGER,

frameRate OUT INTEGER,

videoDuration OUT INTEGER,

numberOfFrames OUT INTEGER,

compressionType OUT VARCHAR2,

numberOfColors OUT INTEGER,

bitRate OUT INTEGER);

説明

ビデオBFILEデータを読み取ってサポートしているフォーマットのメディア属性の値を取得し、入力CLOBに格納して明示的パラメータとして戻します。このメソッドは、ビデオ・データの属性のプロパティを取得します。属性には、MIMEタイプ、フォーマット、フレーム・サイズ、フレームの解像度、フレーム・レート、ビデオ再生時間、フレーム数、圧縮タイプ、色数およびビット・レートがあります。このメソッドは、XML形式で様々なフォーマット・プロパティおよびアプリケーション・プロパティをCLOBに移入します。

パラメータ

ctx

フォーマット・プラグインのコンテキスト情報を指定します。

videoBfile

BFILEで格納されるビデオ・データを指定します。

attributes

getProperties( )メソッドによって生成されたXML属性情報を格納するCLOBを指定します。このCLOBには、XML形式でビデオBFILEデータの様々なフォーマット・プロパティおよびアプリケーション・プロパティが移入されます。

mimeType

ビデオ・データのMIMEタイプが戻されます。

format

ビデオ・データのフォーマットを指定します。NULL以外の値を指定すると、このフォーマット・タイプのフォーマット・プラグインが起動します。それ以外の場合は、ビデオ・データのフォーマットが戻されます。

width

ビデオ・データのフレームの幅がピクセル単位で戻されます。

height

ビデオ・データのフレームの高さがピクセル単位で戻されます。

frameResolution

ビデオ・データのフレームの1インチ当たりのピクセル数が戻されます。

frameRate

ビデオ・データが記録されている1秒当たりのフレーム数が戻されます。

videoDuration

ビデオ・データの再生時間の合計が戻されます。

numberOfFrames

ビデオ・データのフレーム数の合計が戻されます。

compressionType

ビデオ・データの圧縮タイプが戻されます。

numberOfColors

ビデオ・データの色数が戻されます。

bitRate

ビデオ・データのビット・レートが戻されます。

使用上の注意

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

プラグマ

なし

例外

ORDSourceExceptions.EMPTY_SOURCE

この例外は、source.local属性の値が1または0(TRUE)で、source.localData属性の値がNULLの場合に発生します。

ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION

この例外は、getProperties( )メソッドをコールし、ビデオ・プラグインに例外が発生した場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

既知のビデオ属性のプロパティ情報を取得します。

DECLARE
  vid_attrib        CLOB;
  ctx               RAW(64) :=NULL;
  vid_data          BFILE := BFILENAME('VIDEODIR','testvid.dat');
  mimeType          VARCHAR2(80);
  format            VARCHAR2(32) := NULL;
  width             NUMBER;
  height            NUMBER;
  frameResolution   NUMBER;
  frameRate         NUMBER;
  videoDuration     NUMBER;
  numberOfFrames    NUMBER;
  compressionType   VARCHAR2(160);
  numberOfColors    NUMBER;
  bitRate           NUMBER;
BEGIN
  DBMS_LOB.CREATETEMPORARY(vid_attrib, FALSE, DBMS_LOB.CALL);

  ORDSYS.ORDVideo.getProperties(ctx, vid_data, vid_attrib, mimeType, format,
          width, height, frameResolution, frameRate,
          videoDuration, numberOfFrames, compressionType, numberOfColors, bitRate);

  DBMS_OUTPUT.put_line('Size of XML Annotations ' ||
                   TO_CHAR(DBMS_LOB.GETLENGTH(vid_attrib)));
  DBMS_OUTPUT.put_line('mimeType: ' || mimeType );
  DBMS_OUTPUT.put_line('format: ' || format );
  DBMS_OUTPUT.put_line('width: ' || width );
  DBMS_OUTPUT.put_line('height: ' || height );
  DBMS_OUTPUT.put_line('frameResolution: ' || frameResolution );
  DBMS_OUTPUT.put_line('frameRate: ' || frameRate );
  DBMS_OUTPUT.put_line('videoDuration: ' || videoDuration );
  DBMS_OUTPUT.put_line('numberOfFrames: ' || numberOfFrames );
  DBMS_OUTPUT.put_line('compressionType: ' || compressionType );
  DBMS_OUTPUT.put_line('numberOfColors: ' || numberOfColors );
  DBMS_OUTPUT.put_line('bitRate: ' || bitRate );
EXCEPTION
  WHEN OTHERS THEN
  RAISE;
END;
/

BLOBのgetProperties( )

構文

getProperties(ctx IN OUT RAW,

videoBlob IN BLOB,

attributes IN OUT NOCOPY CLOB,

format IN VARCHAR2);

説明

ビデオBLOBデータを読み取ってサポートしているフォーマットのメディア属性の値を取得し、入力CLOBに格納します。このメソッドは、XML形式で様々なフォーマット・プロパティおよびアプリケーション・プロパティをCLOBに移入します。

パラメータ

ctx

フォーマット・プラグインのコンテキスト情報を指定します。

videoBlob

BLOBで格納されるビデオ・データを指定します。

attributes

getProperties( )メソッドによって生成されたXML属性情報を格納するCLOBを指定します。このCLOBには、XML形式でビデオBLOBデータの様々なフォーマット・プロパティおよびアプリケーション・プロパティが移入されます。

format

ビデオ・データのフォーマットを指定します。NULL以外の値を指定すると、このフォーマット・タイプのフォーマット・プラグインが起動します。

使用上の注意

なし

プラグマ

なし

例外

ORDSourceExceptions.EMPTY_SOURCE

この例外は、source.local属性の値が1または0(TRUE)で、source.localData属性の値がNULLの場合に発生します。

ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION

この例外は、getProperties( )メソッドをコールし、ビデオ・プラグインに例外が発生した場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

既知のビデオ属性のプロパティ情報を取得します。

DECLARE
  vid_attrib CLOB;
  ctx RAW(64) :=NULL;
  vid_data BLOB;
  vid_format VARCHAR2(31) := NULL;
BEGIN
  SELECT vid, attributes INTO vid_data, vid_attrib FROM tvid WHERE N = 1 FOR UPDATE;
  ORDSYS.ORDVideo.getProperties(ctx, vid_data, vid_attrib, vid_format);

  DBMS_OUTPUT.put_line('Size of XML Annotations ' ||
                   TO_CHAR(DBMS_LOB.GETLENGTH(vid_attrib)));
  UPDATE tvid SET vid=vid_data, attributes=vid_attrib WHERE N=1;
  COMMIT;
EXCEPTION
  WHEN OTHERS THEN
  RAISE;
END;
/

BLOBのgetProperties( )(すべての属性)

構文

getProperties(ctx IN OUT RAW,

videoBlob IN BLOB,

attributes IN OUT NOCOPY CLOB,

mimeType OUT VARCHAR2,

format IN OUT VARCHAR2

width OUT INTEGER,

height OUT INTEGER,

frameResolution OUT INTEGER,

frameRate OUT INTEGER,

videoDuration OUT INTEGER,

numberOfFrames OUT INTEGER,

compressionType OUT VARCHAR2,

numberOfColors OUT INTEGER,

bitRate OUT INTEGER);

説明

ビデオBLOBデータを読み取ってサポートしているフォーマットのメディア属性の値を取得し、入力CLOBに格納して明示的パラメータとして戻します。このメソッドは、ビデオ・データの属性のプロパティを取得します。属性には、MIMEタイプ、フォーマット、フレーム・サイズ、フレームの解像度、フレーム・レート、ビデオ再生時間、フレーム数、圧縮タイプ、色数およびビット・レートがあります。このメソッドは、XML形式で様々なフォーマット・プロパティおよびアプリケーション・プロパティをCLOBに移入します。

パラメータ

ctx

フォーマット・プラグインのコンテキスト情報を指定します。

videoBlob

BLOBで格納されるビデオ・データを指定します。

attributes

getProperties( )メソッドによって生成されたXML属性情報を格納するCLOBを指定します。このCLOBには、XML形式でビデオBLOBデータの様々なフォーマット・プロパティおよびアプリケーション・プロパティが移入されます。

mimeType

ビデオ・データのMIMEタイプが戻されます。

format

ビデオ・データのフォーマットを指定します。NULL以外の値を指定すると、このフォーマット・タイプのフォーマット・プラグインが起動します。それ以外の場合は、ビデオ・データのフォーマットが戻されます。

width

ビデオ・データのフレームの幅がピクセル単位で戻されます。

height

ビデオ・データのフレームの高さがピクセル単位で戻されます。

frameResolution

ビデオ・データのフレームの1インチ当たりのピクセル数が戻されます。

frameRate

ビデオ・データが記録されている1秒当たりのフレーム数が戻されます。

videoDuration

ビデオ・データの再生時間の合計が戻されます。

numberOfFrames

ビデオ・データのフレーム数の合計が戻されます。

compressionType

ビデオ・データの圧縮タイプが戻されます。

numberOfColors

ビデオ・データの色数が戻されます。

bitRate

ビデオ・データのビット・レートが戻されます。

使用上の注意

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

プラグマ

なし

例外

ORDSourceExceptions.EMPTY_SOURCE

この例外は、source.local属性の値が1または0(TRUE)で、source.localData属性の値がNULLの場合に発生します。

ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION

この例外は、getProperties( )メソッドをコールし、ビデオ・プラグインに例外が発生した場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

既知のビデオ属性のプロパティ情報を取得します。

DECLARE
  vid_attrib        CLOB;
  ctx               RAW(64) :=NULL;
  vid_data          BLOB;
  mimeType          VARCHAR2(80);
  format            VARCHAR2(32);
  width             NUMBER;
  height            NUMBER;
  frameResolution   NUMBER;
  frameRate         NUMBER;
  videoDuration     NUMBER;
  numberOfFrames    NUMBER;
  compressionType   VARCHAR2(160);
  numberOfColors    NUMBER;
  bitRate           NUMBER;
BEGIN
  SELECT vid, attributes, mimetype, format, width, height, frameresolution, framerate,
         videoduration, numberofframes, compressiontype, numberofcolors, bitrate INTO
         vid_data, vid_attrib, mimeType, format, width, height, frameResolution,
         frameRate, videoDuration, numberOfFrames, compressionType, numberOfColors,
         bitRate FROM tvid WHERE N = 1 FOR UPDATE;

  ORDSYS.ORDVideo.getProperties(ctx, vid_data, vid_attrib, mimeType, format,
          width, height, frameResolution, frameRate,
          videoDuration, numberOfFrames, compressionType, numberOfColors, bitRate);

  DBMS_OUTPUT.put_line('Size of XML Annotations ' ||
                   TO_CHAR(DBMS_LOB.GETLENGTH(vid_attrib)));
  DBMS_OUTPUT.put_line('mimeType: ' || mimeType );
  DBMS_OUTPUT.put_line('format: ' || format );
  DBMS_OUTPUT.put_line('width: ' || width );
  DBMS_OUTPUT.put_line('height: ' || height );
  DBMS_OUTPUT.put_line('frameResolution: ' || frameResolution );
  DBMS_OUTPUT.put_line('frameRate: ' || frameRate );
  DBMS_OUTPUT.put_line('videoDuration: ' || videoDuration );
  DBMS_OUTPUT.put_line('numberOfFrames: ' || numberOfFrames );
  DBMS_OUTPUT.put_line('compressionType: ' || compressionType );
  DBMS_OUTPUT.put_line('numberOfColors: ' || numberOfColors );
  DBMS_OUTPUT.put_line('bitRate: ' || bitRate );
  UPDATE tvid SET
        vid=vid_data,
        attributes=vid_attrib,
        mimetype=mimeType,
        format=format,
        width=width,
        height=height,
        frameresolution=frameResolution,
        framerate=frameRate,
        videoduration=videoDuration,
        numberofframes=numberOfFrames,
        compressiontype=compressionType,
        numberofcolors=numberOfColors,
        bitrate=bitRate
     WHERE N=1;
  COMMIT;
EXCEPTION
  WHEN OTHERS THEN
  RAISE;
END;
/