リレーショナル表にメディア・データを格納したり、リレーショナル表内でメディア・データを管理するためのマルチメディア・アプリケーションをOracle Multimediaのオブジェクト型を使用せずに作成したアプリケーション開発者、およびOracle Multimediaオブジェクトを使用するために既存のマルチメディア・アプリケーションを移行しないアプリケーション開発者はOracle Multimediaのリレーショナル・インタフェースを使用してメディア・データを管理できます。Oracle Multimediaのリレーショナル・インタフェースは、次の処理を行う一連のメソッドで構成されています。
XML文字列またはXMLと個々の属性として、メディア・データから直接情報を抽出する
イメージ・データを処理およびコピーする
Oracle Databaseにメディア・データをロードする
Oracle Databaseからオペレーティング・システム・ファイルにメディア・データをエクスポートする
Oracle Multimediaのリレーショナル・インタフェースを使用する主なメリットは、アプリケーション開発者がアプリケーションへの最小限の変更で、Oracle Multimediaの機能を利用し、スキーマをOracle Multimediaオブジェクトに変更せずに、データを格納できることです。
Oracle Multimediaのリレーショナル・インタフェースは、Oracle Multimediaオブジェクト(ORDAudio、ORDDoc、ORDImageおよびORDVideo)用の一連のスタティック・メソッド(「リレーショナル・インタフェースのスタティック・メソッド」を参照)で構成されています。これらはスタティック・メソッドであるため、オブジェクトはインスタンス化されません。データは、オブジェクト属性ではなくメソッドの引数によって渡されます。
Oracle Multimediaオブジェクト(ORDAudio、ORDDoc、ORDImageおよびORDVideo)用のスタティック・メソッドは、ordaspec.sql
、orddspec.sql
、ordispec.sql
およびordvspec.sql
の各ファイルで定義されています。 インストール後、これらのファイルは次のOracleホーム・ディレクトリに格納されています。
<ORACLE_HOME>
/ord/im/admin
(LinuxおよびUNIXの場合)
<ORACLE_HOME>
\ord\im\admin
(Windowsの場合)
メディアのソースに関連するメソッドは、最初の引数にctx (RAW)を取ります。これらのメソッドのいずれかをクライアントから初めてコールする場合、ctx構造体を割り当てて、NULLに初期化する必要があります。
メディアの解析に関連するORDAudio、ORDDocおよびORDVideoのメソッドは、最初の引数にctx (RAW)を取ります。これらのメソッドのいずれかをクライアントから初めてコールする場合、ctx構造体を割り当てて、NULLに初期化する必要があります。
この項では、リレーショナル・インタフェースのスタティック・メソッドに関するリファレンス情報を示します。ここでは、すべてのオブジェクト型に共通のスタティック・メソッド、および特定のオブジェクト型に固有であるか、またはそれぞれのオブジェクト型によって実装が異なるスタティック・メソッドについて説明します。
各項では、SQLソース・ファイルでの定義に従って、スタティック・メソッドを最初に示します。その後、各スタティック・メソッドをアルファベット順に説明します。
この項では、リレーショナル・インタフェースに使用する共通のOracle Multimediaスタティック・メソッドに関するリファレンス情報を示します。
ORDAudio、ORDDoc、ORDImageおよびORDVideoのリレーショナル・インタフェースで共通のスタティック・メソッドは、ordaspec.sql
、orddspec.sql
、ordispec.sql
およびordvspec.sql
の各ファイルで定義されています。
この項の例では、「例で使用されるオーディオ表の定義」、「例で使用されるメディア表の定義」、「例で使用されるイメージ表の定義」および「例で使用されるビデオ表の定義」で説明しているテスト表が各オブジェクト型に作成されていることを前提にしています。
構文
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( )メソッドがサポートされる場合があります。 |
パラメータ
ソース・プラグインのコンテキスト情報を指定します。
エクスポートするBLOBの位置を指定します。
エクスポートするソース・データのタイプを指定します。このパラメータでは、大/小文字は区別されません。
ソース・データのエクスポート先の位置を指定します。
ソース・データのエクスポート先のオブジェクト名を指定します。
使用上の注意
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(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属性にデータを転送します。
パラメータ
ソース・プラグインのコンテキスト情報を指定します。このパラメータは、常に割り当てて、NULLに初期化する必要があります。ユーザー定義のソース・プラグインを使用する場合は、openSource( )メソッドをコールします。詳細は、7.1項を参照してください。
データのインポート先のBLOBの位置を指定します。
ソース・データのタイプを指定します。
インポート元のソース・データの位置を指定します。
ソース・データの名前を指定します。
使用上の注意
ソースがfileの場合、このメソッドを使用する前に、source_locationパラメータで指定したディレクトリが存在するか、または作成されていることを確認する必要があります。
プラグマ
なし
例外
ORDSourceExceptions.METHOD_NOT_SUPPORTED
この例外は、importFrom( )メソッドをコールし、使用するソース・プラグインがこのメソッドをサポートしていない場合に発生します。
ORDSourceExceptions.NULL_SOURCE
この例外は、importFrom( )メソッドをコールし、local_dataパラメータの値がNULLまたは初期化されていない場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
指定した外部データ・ソースからローカル・ソースにデータをインポートします。
注意: e:\mydir\workはテスト・ファイルが格納されているディレクトリ、testimg.dat、testaud.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(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属性にデータを転送します。
パラメータ
ソース・プラグインのコンテキスト情報を指定します。
データのインポート先のBLOBの位置を指定します。
ソース・データのタイプを指定します。
インポート元のソース・データの位置を指定します。
ソース・データの名前を指定します。
データのフォーマットです。可能な場合、(HTTPソースから)値が戻されます。
データの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リレーショナル・インタフェースに固有の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;
構文
getProperties(ctx IN OUT RAW,
audioBfile IN OUT NOCOPY BFILE,
attributes IN OUT NOCOPY CLOB,
format IN VARCHAR2);
説明
オーディオBFILEデータを読み取ってサポートしているフォーマットのメディア属性の値を取得し、入力CLOBに格納します。このメソッドは、XML形式で様々なフォーマット・プロパティおよびアプリケーション・プロパティをCLOBに移入します。
パラメータ
フォーマット・プラグインのコンテキスト情報を指定します。
BFILEで格納されるオーディオ・データを指定します。
getProperties( )メソッドによって生成されたXML属性情報を格納するCLOBを指定します。このCLOBには、XML形式でオーディオBFILEデータの様々なフォーマット・プロパティおよびアプリケーション・プロパティが移入されます。
オーディオ・データのフォーマットを指定します。このパラメータに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; /
構文
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に移入します。
パラメータ
フォーマット・プラグインのコンテキスト情報を指定します。
BFILEで格納されるオーディオ・データを指定します。
getProperties( )メソッドによって生成されたXML属性情報を格納するCLOBを指定します。このCLOBには、XML形式でオーディオBFILEデータの様々なフォーマット・プロパティおよびアプリケーション・プロパティが移入されます。
オーディオ・データのMIMEタイプが戻されます。
オーディオ・データのフォーマットを指定します。NULL以外の値を指定すると、このフォーマット・タイプのフォーマット・プラグインが起動します。それ以外の場合は、デフォルトのプラグインが使用され、導出されたフォーマットの値が戻されます。
オーディオ・データのエンコーディング・タイプが戻されます。
オーディオ・データのチャネル数が戻されます。
オーディオ・データが記録されているサンプルの1秒当たりのサンプリング・レートが戻されます。
データ内のオーディオのサンプル幅またはサンプル数が戻されます。
オーディオ・データの圧縮タイプが戻されます。
オーディオ・データの再生時間の合計が戻されます。
使用上の注意
メディア・ソースからプロパティを抽出できない場合、それぞれのパラメータが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; /
構文
getProperties(ctx IN OUT RAW,
audioBlob IN BLOB,
attributes IN OUT NOCOPY CLOB,
format IN VARCHAR2);
説明
オーディオBLOBデータを読み取ってサポートしているフォーマットのメディア属性の値を取得し、入力CLOBに格納します。このメソッドは、XML形式で様々なフォーマット・プロパティおよびアプリケーション・プロパティをCLOBに移入します。
パラメータ
フォーマット・プラグインのコンテキスト情報を指定します。
BLOBで格納されるオーディオ・データを指定します。
getProperties( )メソッドによって生成されたXML属性情報を格納するCLOBを指定します。このCLOBには、XML形式でオーディオBLOBデータの様々なフォーマット・プロパティおよびアプリケーション・プロパティが移入されます。
オーディオ・データのフォーマットを指定します。このパラメータに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; /
構文
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に移入します。
パラメータ
フォーマット・プラグインのコンテキスト情報を指定します。
BLOBで格納されるオーディオ・データを指定します。
getProperties( )メソッドによって生成されたXML属性情報を格納するCLOBを指定します。このCLOBには、XML形式でオーディオBLOBデータの様々なフォーマット・プロパティおよびアプリケーション・プロパティが移入されます。
オーディオ・データのMIMEタイプが戻されます。
オーディオ・データのフォーマットを指定します。NULL以外の値を指定すると、このフォーマット・タイプのフォーマット・プラグインが起動します。それ以外の場合は、導出されたフォーマットの値が戻されます。
オーディオ・データのエンコーディング・タイプが戻されます。
オーディオ・データのチャネル数が戻されます。
オーディオ・データが記録されているサンプルの1秒当たりのサンプリング・レートが戻されます。
データ内のオーディオのサンプル幅またはサンプル数が戻されます。
オーディオ・データの圧縮タイプが戻されます。
オーディオ・データの再生時間の合計が戻されます。
使用上の注意
メディア・ソースからプロパティを抽出できない場合、それぞれのパラメータが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リレーショナル・インタフェースに固有の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;
構文
getProperties(ctx IN OUT RAW,
docBfile IN OUT NOCOPY BFILE,
attributes IN OUT NOCOPY CLOB,
format IN VARCHAR2);
説明
ドキュメントBFILEデータを読み取ってメディア属性の値を取得し、取得した値を入力CLOBに格納します。このメソッドは、XML形式で様々なフォーマット・プロパティおよびアプリケーション・プロパティをCLOBに移入します。
パラメータ
フォーマット・プラグインのコンテキスト情報を指定します。
BFILEで格納されるドキュメント・データを指定します。
getProperties( )メソッドによって生成されたXML属性情報を格納するCLOBを指定します。このCLOBには、XML形式でドキュメントBFILEデータの様々なフォーマット・プロパティおよびアプリケーション・プロパティが移入されます。
ドキュメント・データのフォーマットを指定します。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; /
構文
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に移入します。
パラメータ
フォーマット・プラグインのコンテキスト情報を指定します。
BFILEで格納されるドキュメント・データを指定します。
getProperties( )メソッドによって生成されたXML属性情報を格納するCLOBを指定します。このCLOBには、XML形式でドキュメントBFILEデータの様々なフォーマット・プロパティおよびアプリケーション・プロパティが移入されます。
ドキュメント・データのMIMEタイプが戻されます。
ドキュメント・データのフォーマットを指定します。NULL以外の値を指定すると、このフォーマット・タイプのフォーマット・プラグインが起動します。それ以外の場合は、導出されたフォーマットが戻されます。
コンテンツ長がバイト単位で戻されます。
使用上の注意
メディア・ソースからプロパティを抽出できない場合、それぞれのパラメータが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; /
構文
getProperties(ctx IN OUT RAW,
docBlob IN BLOB,
attributes IN OUT NOCOPY CLOB,
format IN VARCHAR2);
説明
ドキュメントBLOBデータを読み取ってメディア属性の値を取得し、取得した値を入力CLOBに格納します。このメソッドは、XML形式で様々なフォーマット・プロパティおよびアプリケーション・プロパティをCLOBに移入します。
パラメータ
フォーマット・プラグインのコンテキスト情報を指定します。
BLOBで格納されるドキュメント・データを指定します。
getProperties( )メソッドによって生成されたXML属性情報を格納するCLOBを指定します。このCLOBには、XML形式でドキュメントBLOBデータの様々なフォーマット・プロパティおよびアプリケーション・プロパティが移入されます。
ドキュメント・データのフォーマットを指定します。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; /
構文
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に移入します。
パラメータ
フォーマット・プラグインのコンテキスト情報を指定します。
BLOBで格納されるドキュメント・データを指定します。
getProperties( )メソッドによって生成されたXML属性情報を格納するCLOBを指定します。このCLOBには、XML形式でドキュメントBLOBデータの様々なフォーマット・プロパティおよびアプリケーション・プロパティが移入されます。
ドキュメント・データのMIMEタイプが戻されます。
ドキュメント・データのフォーマットを指定します。NULL以外の値を指定すると、このフォーマット・タイプのフォーマット・プラグインが起動します。
コンテンツ長がバイト単位で戻されます。
使用上の注意
メディア・ソースからプロパティを抽出できない場合、それぞれのパラメータが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リレーショナル・インタフェースに固有の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;
構文
getDicomMetadata(imageBfile IN BFILE,
optionString IN VARCHAR2)
RETURN XMLType;
説明
BFILEに格納されているDICOMイメージから抽出されたメタデータのXML表現を戻します。DICOMで使用するXMLスキーマの詳細は、付録Fを参照してください。
パラメータ
BFILEで格納されるDICOMイメージ・データを指定します。
抽出する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;/
構文
getDicomMetadata(imageBlob IN BLOB,
optionString IN VARCHAR2)
RETURN XMLType;
説明
BLOBに格納されているDICOMイメージから抽出されたメタデータのXML表現を戻します。DICOMで使用するXMLスキーマの詳細は、付録Fを参照してください。
パラメータ
BLOBで格納されるDICOMイメージ・データを指定します。
抽出する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;/
構文
getMetadata(imageBfile IN NOCOPY BFILE,
metadataType IN VARCHAR2 DEFAULT 'ALL'
RETURN XMLSequenceType;
説明
指定したタイプのメタデータをimageBfileから抽出し、スキーマが妥当なXML文書の配列を戻します。一致するメタデータが検出されなかった場合は、空の配列が戻されます。
パラメータ
BFILEで格納されるイメージ・データを指定します。
抽出する埋込みメタデータのタイプを指定する文字列です。有効な値は、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; /
構文
getMetadata(imageBlob IN NOCOPY BLOB,
metadataType IN VARCHAR2 DEFAULT 'ALL')
RETURN XMLSequenceType;
説明
指定したタイプのメタデータをimageBlobから抽出し、スキーマが妥当なXML文書の配列を戻します。一致するメタデータが検出されなかった場合は、空の配列が戻されます。
パラメータ
BLOBで格納されるイメージ・データを指定します。
抽出する埋込みメタデータのタイプを指定する文字列です。有効な値は、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; /
構文
getProperties(imageBfile IN OUT NOCOPY BFILE,
attributes IN OUT NOCOPY CLOB);
説明
イメージBFILEデータを読み取ってサポートしているフォーマットのメディア属性の値を取得し、入力CLOBに格納します。このメソッドは、XML形式で一連のフォーマット・プロパティをCLOBに移入します。
パラメータ
BFILEで格納されるイメージ・データを指定します。
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; /
構文
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に移入します。
パラメータ
BFILEで格納されるイメージ・データを指定します。
getProperties( )メソッドによって生成されたXML属性情報を格納するCLOBを指定します。このCLOBには、XML形式でイメージBFILEデータのフォーマット・プロパティが移入されます。
イメージ・データのMIMEタイプが戻されます。
イメージの幅がピクセル単位で戻されます。
イメージの高さがピクセル単位で戻されます。
イメージ・データのフォーマットが戻されます。
イメージのタイプ(モノクロなど)が戻されます。
イメージ・データに使用される圧縮アルゴリズムが戻されます。
ディスク上のイメージ・ファイルのサイズがバイト単位で戻されます。
使用上の注意
メディア・ソースからプロパティを抽出できない場合、それぞれのパラメータが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; /
構文
getProperties(imageBlob IN BLOB,
attributes IN OUT NOCOPY CLOB);
説明
イメージBLOBデータを読み取ってサポートしているフォーマットのメディア属性の値を取得し、入力CLOBに格納します。このメソッドは、XML形式で一連のフォーマット・プロパティをCLOBに移入します。
パラメータ
BLOBで格納されるイメージ・データを指定します。
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; /
構文
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に移入します。
パラメータ
BLOBで格納されるイメージ・データを指定します。
getProperties( )メソッドによって生成されたXML属性情報を格納するCLOBを指定します。このCLOBには、XML形式でイメージBLOBデータのフォーマット・プロパティが移入されます。
イメージ・データのMIMEタイプが戻されます。
イメージの幅がピクセル単位で戻されます。
イメージの高さがピクセル単位で戻されます。
イメージ・データのフォーマットが戻されます。
イメージのタイプ(モノクロなど)が戻されます。
イメージ・データに使用される圧縮アルゴリズムが戻されます。
ディスク上のイメージ・ファイルのサイズがバイト単位で戻されます。
使用上の注意
メディア・ソースからプロパティを抽出できない場合、それぞれのパラメータが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(imageBlob IN OUT NOCOPY BLOB,
command IN VARCHAR2);
説明
BLOB上でイメージ処理操作を実行し、イメージを上書きします。
パラメータ
BLOBで格納されるイメージ・データを指定します。
実行するイメージ処理操作のリストを指定します。
使用上の注意
表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; /
構文
processCopy(imageBfile IN OUT NOCOPY BFILE,
command IN VARCHAR2,
dest IN OUT NOCOPY BLOB);
説明
内部的または外部的に格納されたイメージを、(埋込みORDSourceオブジェクトの)source.localData属性に内部的に格納された別のイメージにコピーして、そのコピーに対してイメージ処理操作を実行します。
パラメータ
BFILEで格納されるイメージ・データを指定します。
新しくコピーしたイメージに対する変更処理を指定します。
新しいイメージのコピー先を指定します。
使用上の注意
イメージ処理演算子の詳細は、表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; /
構文
processCopy(imageBlob IN BLOB,
command IN VARCHAR2,
dest IN OUT NOCOPY BLOB);
説明
内部的または外部的に格納されたイメージを、(埋込みORDSourceオブジェクトの)source.localData属性に内部的に格納された別のイメージにコピーして、そのコピーに対してイメージ処理操作を実行します。
パラメータ
BLOBで格納されるソース・イメージ・データを指定します。
新しくコピーしたイメージに対する変更処理を指定します。
新しいイメージのコピー先を指定します。
使用上の注意
イメージ処理演算子の詳細は、表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; /
構文
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パラメータに戻されます。
パラメータ
イメージに対するBFILEハンドルを指定します。
埋込みメタデータが含まれているイメージを受け取るBLOBを指定します。
指定したmetadataTypeに対してスキーマが妥当なXML文書を含むXMLTypeを指定します。metadataTypeパラメータの値がXMPの場合は、ルート要素に整形式RDF文書が含まれている必要があります。
書き込むメタデータのタイプを指定する文字列です。有効な値はXMPで、この値がデフォルトです。
イメージ・ファイルで使用される文字コードを指定します。有効な値は、UTF-8、UTF-16、UTF-16BEおよびUTF-16LEです。デフォルトはUTF-8です。
使用上の注意
同じxmlData入力から生成されたバイナリ・メタデータ・パケットのサイズは、エンコーディングによって異なる場合があります。サポートされるエンコーディングはイメージ・ファイル・フォーマットによって異なり、バイナリ・メタデータ・パケットのサイズが制限される場合があります。サポートされる各イメージ・フォーマットの制限を次に示します。
GIF89aは、UTF-8エンコーディングのみをサポートします。
JPEGのバイナリ・パケットのサイズは、65502バイトより小さくする必要があります。
TIFFのバイナリ・パケットのサイズは、4GBより小さくする必要があります。
メタデータの機能の詳細は、『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;/
構文
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パラメータに戻されます。
パラメータ
イメージに対するBLOBハンドルを指定します。
埋込みメタデータが含まれているイメージを受け取るBLOBを指定します。
指定したmetadataTypeに対してスキーマが妥当なXML文書を含むXMLTypeを指定します。metadataTypeパラメータの値がXMPの場合は、ルート要素に整形式RDF文書が含まれている必要があります。
書き込むメタデータのタイプを指定する文字列です。有効な値はXMPで、この値がデフォルトです。
イメージ・ファイルで使用される文字コードを指定します。有効な値は、UTF-8、UTF-16、UTF-16BEおよびUTF-16LEです。デフォルトはUTF-8です。
使用上の注意
一時LOBには読取り一貫性がないため、1つの一時LOBをimageBlobパラメータおよびdestパラメータの両方で使用することはできません。同じxmlData入力から生成されたバイナリ・メタデータ・パケットのサイズは、エンコーディングによって異なる場合があります。サポートされるエンコーディングはイメージ・ファイル・フォーマットによって異なり、バイナリ・メタデータ・パケットのサイズが制限される場合があります。サポートされる各イメージ・フォーマットの制限を次に示します。
GIF89aは、UTF-8エンコーディングのみをサポートします。
JPEGのバイナリ・パケットのサイズは、65502バイトより小さくする必要があります。
TIFFのバイナリ・パケットのサイズは、4GBより小さくする必要があります。
メタデータの機能の詳細は、『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リレーショナル・インタフェースに固有の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;
構文
getProperties(ctx IN OUT RAW,
videoBfile IN OUT NOCOPY BFILE,
attributes IN OUT NOCOPY CLOB,
format IN VARCHAR2);
説明
ビデオBFILEデータを読み取ってサポートしているフォーマットのメディア属性の値を取得し、入力CLOBに格納します。このメソッドは、XML形式で様々なフォーマット・プロパティおよびアプリケーション・プロパティをCLOBに移入します。
パラメータ
フォーマット・プラグインのコンテキスト情報を指定します。
BFILEで格納されるビデオ・データを指定します。
getProperties( )メソッドによって生成されたXML属性情報を格納するCLOBを指定します。このCLOBには、XML形式でビデオBFILEデータの様々なフォーマット・プロパティおよびアプリケーション・プロパティが移入されます。
ビデオ・データのフォーマットを指定します。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; /
構文
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に移入します。
パラメータ
フォーマット・プラグインのコンテキスト情報を指定します。
BFILEで格納されるビデオ・データを指定します。
getProperties( )メソッドによって生成されたXML属性情報を格納するCLOBを指定します。このCLOBには、XML形式でビデオBFILEデータの様々なフォーマット・プロパティおよびアプリケーション・プロパティが移入されます。
ビデオ・データのMIMEタイプが戻されます。
ビデオ・データのフォーマットを指定します。NULL以外の値を指定すると、このフォーマット・タイプのフォーマット・プラグインが起動します。それ以外の場合は、ビデオ・データのフォーマットが戻されます。
ビデオ・データのフレームの幅がピクセル単位で戻されます。
ビデオ・データのフレームの高さがピクセル単位で戻されます。
ビデオ・データのフレームの1インチ当たりのピクセル数が戻されます。
ビデオ・データが記録されている1秒当たりのフレーム数が戻されます。
ビデオ・データの再生時間の合計が戻されます。
ビデオ・データのフレーム数の合計が戻されます。
ビデオ・データの圧縮タイプが戻されます。
ビデオ・データの色数が戻されます。
ビデオ・データのビット・レートが戻されます。
使用上の注意
メディア・ソースからプロパティを抽出できない場合、それぞれのパラメータが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; /
構文
getProperties(ctx IN OUT RAW,
videoBlob IN BLOB,
attributes IN OUT NOCOPY CLOB,
format IN VARCHAR2);
説明
ビデオBLOBデータを読み取ってサポートしているフォーマットのメディア属性の値を取得し、入力CLOBに格納します。このメソッドは、XML形式で様々なフォーマット・プロパティおよびアプリケーション・プロパティをCLOBに移入します。
パラメータ
フォーマット・プラグインのコンテキスト情報を指定します。
BLOBで格納されるビデオ・データを指定します。
getProperties( )メソッドによって生成されたXML属性情報を格納するCLOBを指定します。このCLOBには、XML形式でビデオBLOBデータの様々なフォーマット・プロパティおよびアプリケーション・プロパティが移入されます。
ビデオ・データのフォーマットを指定します。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; /
構文
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に移入します。
パラメータ
フォーマット・プラグインのコンテキスト情報を指定します。
BLOBで格納されるビデオ・データを指定します。
getProperties( )メソッドによって生成されたXML属性情報を格納するCLOBを指定します。このCLOBには、XML形式でビデオBLOBデータの様々なフォーマット・プロパティおよびアプリケーション・プロパティが移入されます。
ビデオ・データのMIMEタイプが戻されます。
ビデオ・データのフォーマットを指定します。NULL以外の値を指定すると、このフォーマット・タイプのフォーマット・プラグインが起動します。それ以外の場合は、ビデオ・データのフォーマットが戻されます。
ビデオ・データのフレームの幅がピクセル単位で戻されます。
ビデオ・データのフレームの高さがピクセル単位で戻されます。
ビデオ・データのフレームの1インチ当たりのピクセル数が戻されます。
ビデオ・データが記録されている1秒当たりのフレーム数が戻されます。
ビデオ・データの再生時間の合計が戻されます。
ビデオ・データのフレーム数の合計が戻されます。
ビデオ・データの圧縮タイプが戻されます。
ビデオ・データの色数が戻されます。
ビデオ・データのビット・レートが戻されます。
使用上の注意
メディア・ソースからプロパティを抽出できない場合、それぞれのパラメータが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; /