11 Oracle Multimedia ORDVideoオブジェクト型
Oracle Multimediaでは、ビデオ・データの格納および管理をサポートするORDVideoオブジェクト型が提供されます。
ORDVideoオブジェクト型は、ordvspec.sql
ファイルで定義されています。インストール後、このファイルは次のOracleホーム・ディレクトリに格納されています。
<ORACLE_HOME>
/ord/im/admin
(LinuxおよびUNIXの場合)
<ORACLE_HOME>
\ord\im\admin
(Windowsの場合)
11.1 ORDVideoオブジェクトの例
ORDVideoオブジェクト型の例では、Oracle Database Product Media (PM)サンプル・スキーマのONLINE_MEDIA表を使用しています。Oracle Databaseサンプル・スキーマは、GitHubで使用できます。使用しているコンピュータでこれらの例を再現するには、まず、ORDVideoのコンストラクタ、およびimport( )とimportFrom( )メソッドの項に示す例を実行してください。例のファイルは、実際のビデオ・ファイルで置き換えてください。
コンストラクタの「BLOBのORDVideo」の例では、テスト・ビデオ表のTVIDを使用しています。(この表の定義は、「TVID表の定義」を参照してください。)
注意:
BLOBを直接修正するか、または外部ソースを変更してビデオ・データ自体を操作した場合、オブジェクト属性の同期が維持されていることと、更新時刻が修正されていることを確認する必要があります。そうしないと、オブジェクト属性がビデオ・データと一致しなくなります。
11.2 ORDVideoのメソッドの重要な注意事項
ORDSourceレベルでコールされたメソッドは、ソース・プラグインに渡されて処理され、最初の引数にctx (RAW)を取ります。これらのメソッドのいずれかをクライアントから初めてコールする場合、ctx構造体を割り当ててNULLに初期化してから、openSource( )メソッドをコールする必要があります。このとき、ソース・プラグインが、このクライアント用にコンテキストを初期化できます。処理が完了したら、クライアントからcloseSource( )メソッドをコールする必要があります。
ソース・プラグインのコールによってコールされたメソッドは、最初の引数にctx (RAW)を取ります。
ORDVideoレベルでコールされたメソッドは、フォーマット・プラグインに渡されて処理され、最初の引数にctx (RAW)を取ります。これらのメソッドのいずれかをクライアントから初めてコールする場合、ctx構造体を割り当てて、NULLに初期化する必要があります。
注意:
今回のリリースでは、Oracleが提供するいずれのプラグインもctx構造体を使用しません。また、すべてのソース・プラグインまたはフォーマット・プラグインがctx構造体を使用するわけではありませんが、前述の方法でコーディングすると、アプリケーションは、現行または今後のソース・プラグインまたはフォーマット・プラグインで動作します。
ネイティブにサポートされていないフォーマットの場合、個々のいずれかのsetメソッドを使用して、オブジェクトの属性値を設定します。ネイティブにサポートされているフォーマットの場合は、setProperties( )メソッドを使用して、オブジェクトの属性を移入するか、またはフォーマット・プラグインを記述します。
11.3 ORDVideoオブジェクト型
ORDVideoオブジェクト型は、ビデオ・データの格納および管理をサポートします。このオブジェクト型の属性は、ordvspec.sql
ファイルで次のように定義されています。
------------------- -- TYPE ATTRIBUTES ------------------- description VARCHAR2(4000), source ORDSource, format VARCHAR2(31), mimeType VARCHAR2(4000), comments CLOB, -- VIDEO RELATED ATTRIBUTES width INTEGER, height INTEGER, frameResolution INTEGER, frameRate INTEGER, videoDuration INTEGER, numberOfFrames INTEGER, compressionType VARCHAR2(4000), numberOfColors INTEGER, bitRate INTEGER,
説明:
-
description: ビデオ・オブジェクトの説明。
-
source: ビデオ・データが格納されるORDSource。
-
format: ビデオ・データの格納フォーマット。
-
mimeType: MIMEタイプについての情報。
-
comments: ビデオ・オブジェクトのメタデータ情報。
-
width: ビデオ・データの各フレームの幅。
-
height: ビデオ・データの各フレームの高さ。
-
frameResolution: ビデオ・データのフレームの解像度。
-
frameRate: ビデオ・データのフレーム・レート。
-
videoDuration: 格納されるビデオ・データの再生時間。
-
numberOfFrames: ビデオ・データのフレーム数。
-
compressionType: ビデオ・データの圧縮タイプ。
-
numberOfColors: ビデオ・データの色数。
-
bitRate: ビデオ・データのビット・レート。
注意:
comments属性は、setCommentsパラメータがTRUEである場合、setProperties( )メソッドによって移入されます。この属性に対して直接書込みしないことをお薦めします。
11.4 ORDVideoのコンストラクタ
ORDVideoのコンストラクタには、BLOBの格納専用のものと、他のすべてのソースに対応したものと2つあります。
11.4.1 BLOBのORDVideo
構文
ORDVideo(SELF IN OUT NOCOPY ORDSYS.ORDVideo, data IN BLOB, setproperties IN INTEGER DEFAULT 0) RETURN SELF AS RESULT
説明
BLOBからORDVideoオブジェクトを構築します。構築されたORDVideoオブジェクトが表に挿入または更新されると、BLOBに格納されているデータがORDVideoオブジェクトにコピーされます。
パラメータ
プラグマ
なし。
例外
なし。
使用上の注意
オーディオ・コンテンツが一時または永続BLOBのいずれかに格納される場合は、このコンストラクタを使用して、ORDVideoオブジェクトを作成します。
例
BLOBオブジェクトからORDVideoオブジェクトを作成し、表に挿入します。
注意:
この文を実行するユーザーは、ユーザーmediauser
によって作成されたtvid
表に対するSELECT権限を持っている必要があります。
テスト・ビデオ表のTVIDの定義は、「TVID表の定義」を参照してください。
INSERT INTO pm.online_media (product_id, product_video) SELECT 2004, ORDSYS.ORDVideo(t.vid) FROM mediauser.tvid t WHERE t.n = 1;
11.4.2 他のソースのORDVideo
構文
ORDVideo(SELF IN OUT NOCOPY ORDSYS.ORDVideo, source_type IN VARCHAR2 DEFAULT 'LOCAL', source_location IN VARCHAR2 DEFAULT NULL, source_name IN VARCHAR2 DEFAULT NULL, setproperties IN INTEGER DEFAULT 0) RETURN SELF AS RESULT
説明
特定のソースからORDVideoオブジェクトを構築します。デフォルトでは、ローカル・ソースによる空のオブジェクトが構築されます。
パラメータ
- source_type
-
ソース・ビデオ・データのタイプを指定します。有効な値は、
FILE
、HTTP
、LOCAL
またはユーザー定義です。デフォルトは、LOCAL
です。パラメータ値の
LOCAL
は、データがOracle Databaseに格納されていることを示します。パラメータ値のLOCAL
は、srcType属性に格納されることはありません。かわりに、このパラメータ値は、localData属性でデータがOracle Databaseに格納されていることを示します。(ORDSourceオブジェクトの説明は、「埋込みORDSourceオブジェクト」を参照してください。) - source_location
-
インポート元のソース・ビデオ・データの位置を指定します。(表7-2を参照してください。)
- source_name
-
ソース・ビデオ・データの名前を指定します。(表7-3を参照してください。)
- setproperties
-
コンストラクタでsetProperties( )メソッドをコールするかどうかを決定するインジケータ・フラグです。値が
1
の場合、setProperties( )メソッドがコールされます。値が0
の場合、メソッドはコールされません。デフォルトは0
です。
プラグマ
なし。
例外
なし。
使用上の注意
次のいずれかの状況のように、ビデオ・コンテンツがBLOBに格納されていない場合は、このコンストラクタを使用して、ORDVideoオブジェクトを作成します。
- コンテンツがローカル・ファイルに存在します。
- コンテンツがURLで参照されています。
- コンテンツがORDVideoオブジェクトの作成時に使用できません。
例
指定されたソースからORDVideoオブジェクトを作成します。
-- Construct an ORDVideo object from an external file and insert it into the table. INSERT INTO pm.online_media (product_id, product_video) VALUES (2030, ORDSYS.ORDVideo('FILE', 'FILE_DIR', 'speakers.rm')); -- Initialize an ORDVideo object in the table. INSERT INTO pm.online_media (product_id, product_video) VALUES(2004, ORDSYS.ORDVideo());
11.5 ORDVideoのメソッド
Oracle Multimediaのいくつかのメソッドは、特にビデオ・データの操作用に設計されています。
ORDAudio、ORDDoc、ORDImageおよびORDVideoに共通のOracle Multimediaのメソッドに関するリファレンス情報については、「すべてのOracle Multimediaオブジェクト型に共通のメソッド」を参照してください。この章と第2章に示すメソッドを使用すると、属性の取得と設定およびメタデータの抽出を実行できます。
関連項目:
オブジェクト型およびメソッドの詳細は、『Oracle Database概要』を参照してください
11.5.1 checkProperties( )
構文
checkProperties(ctx IN OUT RAW) RETURN BOOLEAN;
説明
ビデオ属性(フォーマット、幅、高さ、フレームの解像度、フレーム・レート、ビデオ再生時間、フレーム数、圧縮タイプ、色数およびビット・レート)を含む、格納されているビデオ・データのすべてのプロパティをチェックします。
パラメータ
- ctx
-
フォーマット・プラグインのコンテキスト情報を指定します。(「ORDVideoのメソッドの重要な注意事項」を参照してください。)
使用上の注意
ファイルには有効なMIMEタイプが複数含まれる場合があり、これらを詳細に定義することはできないため、checkProperties( )メソッドは、MIMEタイプをチェックしません。
プラグマ
なし。
例外
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULL
の場合に発生します。
ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION
この例外は、checkProperties( )メソッドをコールし、このメソッドをコールしているときに、ビデオ・プラグインに例外が発生した場合に発生します。
これらの例外の詳細は、「Oracle Multimediaオブジェクトの例外」を参照してください。
例
既知のビデオ属性に対して、プロパティ情報をチェックします。
DECLARE obj ORDSYS.ORDVideo; ctx RAW(64) :=NULL; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2030; IF(obj.checkProperties(ctx)) THEN DBMS_OUTPUT.PUT_LINE('check Properties returned true'); ELSE DBMS_OUTPUT.PUT_LINE('check Properties returned false'); END IF; COMMIT; EXCEPTION WHEN ORDSYS.ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION THEN DBMS_OUTPUT.PUT_LINE('ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION caught'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('EXCEPTION caught'); END; /
11.5.2 getAllAttributes( )
構文
getAllAttributes(ctx IN OUT RAW, attributes IN OUT NOCOPY CLOB);
説明
クライアント・アクセスを容易にするため、文字列をフォーマットして戻します。ネイティブにサポートされたフォーマットでは、文字列には、カンマ(,)で区切られたビデオ・データ属性(width、height、format、frameResolution、frameRate、videoDuration、numberOfFrames、compressionType、numberOfColorsおよびbitRate)のリストが含まれます。ユーザー定義のフォーマットの場合は、フォーマット・プラグインによって文字列が定義されます。
パラメータ
- ctx
-
フォーマット・プラグインのコンテキスト情報を指定します。(「ORDVideoのメソッドの重要な注意事項」を参照してください。)
- attributes
-
属性を指定します。
使用上の注意
通常、これらのビデオ・データ属性は、フォーマットされたビデオ・データのヘッダーから取得可能です。
ビデオ・データ属性情報は、ビデオ・データ自体から抽出可能です。ORDVideoオブジェクトで認識されないフォーマットは、そのフォーマットをサポートしているORDPLUGINS.ORDX_<format>_VIDEOパッケージを実装することによって、サポートできます。
関連項目:
メディア・フォーマットの拡張サポートの詳細は、『Oracle Multimediaユーザーズ・ガイド』を参照してください
プラグマ
なし。
例外
ORDVideoExceptions.METHOD_NOT_SUPPORTED
この例外は、getAllAttributes( )メソッドをコールし、このメソッドをコールしているときに、ビデオ・プラグインに例外が発生した場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULL
の場合に発生します。
これらの例外の詳細は、「Oracle Multimediaオブジェクトの例外」を参照してください。
例
データベースに格納されているビデオ・データのすべてのビデオ属性を戻します。
DECLARE obj ORDSYS.ORDVideo; tempLob CLOB; ctx RAW(64) :=NULL; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2030; DBMS_OUTPUT.PUT_LINE('getting comma separated list of all attributes'); DBMS_OUTPUT.PUT_LINE('---------------------------------------------'); DBMS_LOB.CREATETEMPORARY(tempLob, FALSE, DBMS_LOB.CALL); obj.getAllAttributes(ctx,tempLob); DBMS_OUTPUT.PUT_LINE(DBMS_LOB.substr(tempLob, DBMS_LOB.getLength(tempLob),1)); COMMIT; EXCEPTION WHEN ORDSYS.ORDVideoExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.PUT_LINE('VIDEO METHOD_NOT_SUPPORTED EXCEPTION caught'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('EXCEPTION CAUGHT'); END; /
11.5.3 getAttribute( )
構文
getAttribute(ctx IN OUT RAW, name IN VARCHAR2) RETURN VARCHAR2;
説明
ユーザー定義フォーマットのみに対応したビデオ・データから、要求された属性値を戻します。
注意:
このメソッドは、ユーザー定義のフォーマット・プラグインのみでサポートされます。
パラメータ
- ctx
-
フォーマット・プラグインのコンテキスト情報を指定します。(「ORDVideoのメソッドの重要な注意事項」を参照してください。)
- name
-
属性の名前を指定します。
使用上の注意
なし。
プラグマ
なし。
例外
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULL
の場合に発生します。
ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION
この例外は、getAttribute( )メソッドをコールし、このメソッドをコールしているときに、ビデオ・プラグインに例外が発生した場合に発生します。
これらの例外の詳細は、「Oracle Multimediaオブジェクトの例外」を参照してください。
例
データベースに格納されているビデオ・データの、指定したビデオ属性情報を戻します。(この例では、ユーザー作成のプラグインではなく、サポートされたデータ・フォーマットを使用しているため、例外が発生します。)
DECLARE obj ORDSYS.ORDVideo; res VARCHAR2(4000); ctx RAW(64) :=NULL; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2030; DBMS_OUTPUT.PUT_LINE('getting video duration'); DBMS_OUTPUT.PUT_LINE('---------------------'); res := obj.getAttribute(ctx,'video_duration'); COMMIT; EXCEPTION WHEN ORDSYS.ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION THEN DBMS_OUTPUT.PUT_LINE('VIDEO PLUGIN EXCEPTION caught'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('EXCEPTION caught'); END; /
11.5.4 getBitRate( )
構文
getBitRate( ) RETURN INTEGER;
説明
ビデオ・オブジェクトのbitRate属性の値を戻します。
パラメータ
なし。
使用上の注意
なし。
プラグマ
PRAGMA RESTRICT_REFERENCES(getBitRate, WNDS, WNPS, RNDS, RNPS)
例外
なし。
例
ビデオ・オブジェクトのbitRate属性のオブジェクト属性値を戻します。
DECLARE obj ORDSYS.ORDVideo; res INTEGER; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2030; res := obj.getBitRate(); DBMS_OUTPUT.PUT_LINE('bit rate : ' || res ); COMMIT; END; /
11.5.5 getCompressionType( )
構文
getCompressionType( ) RETURN VARCHAR2;
説明
ビデオ・オブジェクトのcompressionType属性の値を戻します。
パラメータ
なし。
使用上の注意
なし。
プラグマ
PRAGMA RESTRICT_REFERENCES(getCompressionType, WNDS, WNPS, RNDS, RNPS)
例外
なし。
例
ビデオ・オブジェクトのcompressionType属性のオブジェクト属性値を戻します。
DECLARE obj ORDSYS.ORDVideo; res VARCHAR2(4000); BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2030; res := obj.getCompressionType(); DBMS_OUTPUT.PUT_LINE('compression type: ' ||res); COMMIT; END; /
11.5.6 getContentInLob( )
構文
getContentInLob(ctx IN OUT RAW, dest_lob IN OUT NOCOPY BLOB, mimeType OUT VARCHAR2, format OUT VARCHAR2);
説明
データ・ソースのデータを、指定されたBLOBにコピーします。コピー先のBLOBは、(埋込みORDSourceオブジェクトの)source.localData属性内のBLOBとは異なる必要があります。
パラメータ
- ctx
-
ソース・プラグインのコンテキスト情報を指定します。(「ORDVideoのメソッドの重要な注意事項」を参照してください。)
- dest_lob
-
データのコピー先のLOBを指定します。
- mimeType
-
データのMIMEタイプが戻されます(戻されない場合もあります)。
- format
-
データのフォーマットが戻されます(戻されない場合もあります)。
使用上の注意
なし。
プラグマ
なし。
例外
ORDSourceExceptions.METHOD_NOT_SUPPORTED
この例外は、getContentInLob( )メソッドをコールし、使用するソース・プラグインがこのメソッドをサポートしていない場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULL
の場合に発生します。
これらの例外の詳細は、「Oracle Multimediaオブジェクトの例外」を参照してください。
例
データ・ソースからデータを取得し、ローカル・ソースの指定したBLOBに格納します。
DECLARE obj ORDSYS.ORDVideo; tempBLob BLOB; mimeType VARCHAR2(4000); format VARCHAR2(31); ctx RAW(64) :=NULL; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2030; IF (obj.isLocal) THEN DBMS_OUTPUT.PUT_LINE('local is true'); END IF; DBMS_LOB.CREATETEMPORARY(tempBLob, true, 10); obj.getContentInLob(ctx,tempBLob, mimeType,format); DBMS_OUTPUT.PUT_LINE('Length is ' ||TO_CHAR(DBMS_LOB.getLength(tempBLob))); COMMIT; EXCEPTION WHEN ORDSYS.ORDSourceExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.PUT_LINE('ORDSourceExceptions.METHOD_NOT_SUPPORTED caught'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('EXCEPTION caught'); END; /
11.5.7 getContentLength( )
構文
getContentLength(ctx IN OUT RAW) RETURN INTEGER;
説明
ソースに格納されているビデオ・データのコンテンツ長を戻します。
パラメータ
- ctx
-
ソース・プラグインのコンテキスト情報を指定します。(「ORDVideoのメソッドの重要な注意事項」を参照してください。)
使用上の注意
なし。
プラグマ
なし。
例外
ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION
この例外は、getContentLength( )メソッドをコールし、source.srcType属性の値がNULL
の場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULL
の場合に発生します。
これらの例外の詳細は、「Oracle Multimediaオブジェクトの例外」を参照してください。
例
「import( ) 」の例を参照してください。
11.5.8 getDescription( )
構文
getDescription( ) RETURN VARCHAR2;
説明
ビデオ・データのdescription属性の値を戻します。
パラメータ
なし。
使用上の注意
なし。
プラグマ
PRAGMA RESTRICT_REFERENCES(getDescription, WNDS, WNPS, RNDS, RNPS)
例外
ORDVideoExceptions.DESCRIPTION_IS_NOT_SET
この例外は、getDescription( )メソッドをコールし、description属性の値が設定されていない場合に発生します。
この例外の詳細は、「Oracle Multimediaオブジェクトの例外」を参照してください。
例
「setDescription( )」の例を参照してください。
11.5.9 getFormat( )
構文
getFormat( ) RETURN VARCHAR2;
説明
ビデオ・オブジェクトのformat属性の値を戻します。
パラメータ
なし。
使用上の注意
なし。
プラグマ
PRAGMA RESTRICT_REFERENCES(getFormat, WNDS, WNPS, RNDS, RNPS)
例外
ORDVideoExceptions.VIDEO_FORMAT_IS_NULL
この例外は、getFormat( )メソッドをコールし、format属性の値がNULL
の場合に発生します。
この例外の詳細は、「Oracle Multimediaオブジェクトの例外」を参照してください。
例
格納されているビデオ・データのフォーマットを取得します。
DECLARE obj ORDSYS.ORDVideo; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2030; DBMS_OUTPUT.PUT_LINE('writing format'); DBMS_OUTPUT.PUT_LINE('--------------'); DBMS_OUTPUT.PUT_LINE(obj.getFormat()); COMMIT; END; /
11.5.10 getFrameRate( )
構文
getFrameRate( ) RETURN INTEGER;
説明
ビデオ・オブジェクトのframeRate属性の値を戻します。
パラメータ
なし。
使用上の注意
なし。
プラグマ
PRAGMA RESTRICT_REFERENCES(getFrameRate, WNDS, WNPS, RNDS, RNPS)
例外
なし。
例
データベースに格納されているビデオ・データのframeRate属性のオブジェクト属性値を戻します。
DECLARE obj ORDSYS.ORDVideo; res INTEGER; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2030; res := obj.getFrameRate(); DBMS_OUTPUT.PUT_LINE('frame rate : ' ||res); COMMIT; END; /
11.5.11 getFrameResolution( )
構文
getFrameResolution( ) RETURN INTEGER;
説明
ビデオ・オブジェクトのframeResolution属性の値を戻します。
パラメータ
なし。
使用上の注意
なし。
プラグマ
PRAGMA RESTRICT_REFERENCES(getFrameResolution, WNDS, WNPS, RNDS, RNPS)
例外
なし。
例
ビデオ・データのフレームの解像度の値を戻します。
DECLARE obj ORDSYS.ORDVideo; res INTEGER; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2030; res := obj.getFrameResolution(); DBMS_OUTPUT.PUT_LINE('resolution : ' ||res); COMMIT; END; /
11.5.12 getFrameSize( )
構文
getFrameSize(retWidth OUT INTEGER, retHeight OUT INTEGER);
説明
ビデオ・オブジェクトのheightおよびwidth属性の値を戻します。
使用上の注意
なし。
プラグマ
PRAGMA RESTRICT_REFERENCES(getFrameSize, WNDS, WNPS, RNDS, RNPS)
例外
なし。
例
ビデオ・データのフレーム・サイズ(幅および高さ)を戻します。
DECLARE obj ORDSYS.ORDVideo; width INTEGER; height INTEGER; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2030; obj.getFrameSize(width, height); DBMS_OUTPUT.PUT_LINE('width :' || width); DBMS_OUTPUT.PUT_LINE('height :' || height); COMMIT; END; /
11.5.13 getNumberOfColors( )
構文
getNumberOfColors( ) RETURN INTEGER;
説明
ビデオ・オブジェクトのnumberOfColors属性の値を戻します。
パラメータ
なし。
使用上の注意
なし。
プラグマ
PRAGMA RESTRICT_REFERENCES(getNumberOfColors, WNDS, WNPS, RNDS, RNPS)
例外
なし。
例
ビデオ・オブジェクトのnumberOfColors属性のオブジェクト属性値を戻します。
DECLARE obj ORDSYS.ORDVideo; res INTEGER; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2030; res := obj.getNumberOfColors(); DBMS_OUTPUT.PUT_LINE('number of colors: ' ||res); COMMIT; END; /
11.5.14 getNumberOfFrames( )
構文
getNumberOfFrames( ) RETURN INTEGER;
説明
ビデオ・オブジェクトのnumberOfFrames属性の値を戻します。
パラメータ
なし。
使用上の注意
なし。
プラグマ
PRAGMA RESTRICT_REFERENCES(getNumberOfFrames, WNDS, WNPS, RNDS, RNPS)
例外
なし。
例
ビデオ・データのnumberOfFrames属性のオブジェクト属性値を戻します。
DECLARE obj ORDSYS.ORDVideo; res INTEGER; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2030; res := obj.getNumberOfFrames(); DBMS_OUTPUT.PUT_LINE('number of frames : ' ||res); COMMIT; END; /
11.5.15 getVideoDuration( )
構文
getVideoDuration( ) RETURN INTEGER;
説明
ビデオ・オブジェクトのvideoDuration属性の値を戻します。
パラメータ
なし。
使用上の注意
なし。
プラグマ
PRAGMA RESTRICT_REFERENCES(getVideoDuration, WNDS, WNPS, RNDS, RNPS)
例外
なし。
例
ビデオ・データの合計再生時間を戻します。
DECLARE obj ORDSYS.ORDVideo; res INTEGER; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2030; res := obj.getVideoDuration(); DBMS_OUTPUT.PUT_LINE('video duration : ' ||res); COMMIT; END; /
11.5.16 import( )
構文
import(ctx IN OUT RAW);
説明
外部ビデオ・データ・ソースからデータベース内の(埋込みORDSourceオブジェクトの) source.localData属性にビデオ・データを転送します。
パラメータ
- ctx
-
ソース・プラグインのコンテキスト情報を指定します。このパラメータは、常に割り当てて、NULLに初期化する必要があります。ユーザー定義のソース・プラグインを使用する場合は、openSource( )メソッドをコールします。(「ORDVideoのメソッドの重要な注意事項」を参照してください。)
使用上の注意
import( )メソッドをコールする前に、setSource( )メソッドを使用して、外部ソースの(埋込みORDSourceオブジェクトの) source.srcType、source.srcLocationおよびsource.srcName属性を設定します。
外部ビデオ・データ・ソースからローカル・ソース(Oracleデータベース内)にデータをインポートした後も、ソース情報は変更されません(データのインポート元のソースを指したままです)。
このメソッドをコールすると、setUpdateTime( )およびsetLocal( )メソッドが暗黙的にコールされます。
source.srcType属性の値がFILE
の場合、source.srcLocation属性にはインポート対象のファイルを格納したデータベース・ディレクトリ・オブジェクトの名前が含まれ、source.srcName属性にはインポート対象のファイルの名前が含まれます。このメソッドを使用する前に、外部ソースの位置にディレクトリが存在するか、または作成されていることを確認する必要があります。
import( )メソッドは、ユーザーがアクセス権を持つデータベース・ディレクトリのオブジェクトからのみ読み取ります。つまり、SQL文のCREATE DIRECTORYを使用して作成したディレクトリ・オブジェクト、または読取り権限を付与されたディレクトリ・オブジェクトにアクセスできます。
たとえば、次のSQL*Plusコマンドを実行すると、ディレクトリ・オブジェクトが作成され、ディレクトリc:\mydir\work
内の任意のファイルに対する読取り権限がユーザーron
に付与されます。これらのコマンドを実行する前に、ディレクトリ・オブジェクトを作成する権限を持ったユーザーとして接続しておく必要があります。
CREATE OR REPLACE DIRECTORY FILE_DIR AS 'c:\mydir\work'; GRANT READ ON DIRECTORY FILE_DIR TO ron;
ディレクトリおよび表の定義の詳細は、「ORDVideoオブジェクトの例」を参照してください。
source.srcType属性の値がHTTP
の場合、source.srcLocation属性にはインポート対象のオブジェクトを格納したディレクトリを検索するために必要なベースURLが含まれ、source.srcName属性にはインポート対象のオブジェクトの名前が含まれます。
このメソッドは、PL/SQL UTL_HTTPパッケージを使用して、HTTPデータ・ソースからメディア・データをインポートします。環境変数を使用して、UTL_HTTPパッケージのプロキシの動作を指定できます。たとえば、LinuxおよびUNIXの場合、環境変数http_proxyをURLに設定すると、UTL_HTTPパッケージはそのURLをHTTPリクエスト用のプロキシ・サーバーとして使用する必要があります。環境変数no_proxyをドメイン名に設定すると、HTTPプロキシ・サーバーは指定したドメイン内のURLには使用されません。
関連項目:
UTL_HTTPパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください
source.srcType属性の値がユーザー定義の名前の場合、source.srcLocation属性にはインポート対象のユーザー定義オブジェクトにアクセスするために必要な識別子文字列が含まれ、source.srcName属性にはインポート対象のオブジェクトの名前が含まれます。
プラグマ
なし。
例外
ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION
この例外は、import( )メソッドをコールし、source.srcType属性の値がNULL
の場合に発生します。
ORDSourceExceptions.METHOD_NOT_SUPPORTED
この例外は、import( )メソッドをコールし、使用するソース・プラグインがこのメソッドをサポートしていない場合に発生します。
ORDSourceExceptions.NULL_SOURCE
この例外は、import( )メソッドをコールし、source.localData属性の値がNULL
の場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULL
の場合に発生します。
これらの例外の詳細は、「Oracle Multimediaオブジェクトの例外」を参照してください。
例
ソースを設定し、その後にビデオ・データをインポートします。
DECLARE obj ORDSYS.ORDVideo; ctx RAW(64) :=NULL; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2030 FOR UPDATE; DBMS_OUTPUT.PUT_LINE('setting and getting source'); DBMS_OUTPUT.PUT_LINE('--------------------------'); -- Set source to a file: obj.setSource('file','FILE_DIR','speakers.rm'); -- Get source information: DBMS_OUTPUT.PUT_LINE(obj.getSource()); -- Import data: obj.import(ctx); -- Check size: DBMS_OUTPUT.PUT_LINE('Length is ' || TO_CHAR(obj.getContentLength(ctx))); UPDATE pm.online_media p SET p.product_video = obj WHERE p.product_id = 2030; COMMIT; END; /
11.5.17 importFrom( )
構文
importFrom(ctx IN OUT RAW, source_type IN VARCHAR2, source_location IN VARCHAR2, source_name IN VARCHAR2);
説明
指定された外部ビデオ・データ・ソースからデータベース内の(埋込みORDSourceオブジェクトの) source.localData属性にビデオ・データを転送します。
パラメータ
- ctx
-
ソース・プラグインのコンテキスト情報を指定します。このパラメータは、常に割り当てて、
NULL
に初期化する必要があります。ユーザー定義のソース・プラグインを使用する場合は、openSource( )メソッドをコールします。(「ORDVideoのメソッドの重要な注意事項」を参照してください。) - source_type
-
ソース・ビデオ・データのタイプを指定します。(表7-1を参照してください。)
- source_location
-
インポート元のソース・ビデオ・データの位置を指定します。(表7-2を参照してください。)
- source_name
-
ソース・ビデオ・データの名前を指定します。(表7-3を参照してください。)
使用上の注意
このメソッドは、ソース情報を個別に指定せずにパラメータで指定すること以外は、import( )メソッドと同じです。
外部ビデオ・データ・ソースからローカル・ソース(Oracleデータベース内)にデータをインポートすると、(データのインポート元のソースを指している)ソース情報は入力値に設定されます。
このメソッドをコールすると、setUpdateTime( )およびsetLocal( )メソッドが暗黙的にコールされます。
source_typeパラメータの値がFILE
の場合、source_locationパラメータにはインポート対象のファイルを格納したデータベース・ディレクトリ・オブジェクトの名前が含まれ、source_nameパラメータにはインポート対象のファイルの名前が含まれます。このメソッドを使用する前に、source_locationパラメータで指定したディレクトリが存在するか、または作成されていることを確認する必要があります。
importFrom( )メソッドは、ユーザーがアクセス権を持つデータベース・ディレクトリのオブジェクトからのみ読み取ります。つまり、SQL文のCREATE DIRECTORYを使用して作成したディレクトリ・オブジェクト、または読取り権限を付与されたディレクトリ・オブジェクトにアクセスできます。
たとえば、次のSQL*Plusコマンドを実行すると、ディレクトリ・オブジェクトが作成され、ディレクトリc:\mydir\work
内の任意のファイルに対する読取り権限がユーザーron
に付与されます。これらのコマンドを実行する前に、ディレクトリ・オブジェクトを作成する権限を持ったユーザーとして接続しておく必要があります。
CREATE OR REPLACE DIRECTORY FILE_DIR AS 'c:\mydir\work'; GRANT READ ON DIRECTORY FILE_DIR TO ron;
ディレクトリおよび表の定義の詳細は、「ORDVideoオブジェクトの例」を参照してください。
source_typeパラメータの値がHTTP
の場合、source_locationパラメータにはインポート対象のオブジェクトを格納したディレクトリを検索するために必要なベースURLが含まれ、source_nameパラメータにはインポート対象のオブジェクトの名前が含まれます。
このメソッドは、PL/SQL UTL_HTTPパッケージを使用して、HTTPデータ・ソースからメディア・データをインポートします。環境変数を使用して、UTL_HTTPパッケージのプロキシの動作を指定できます。たとえば、LinuxおよびUNIXの場合、環境変数http_proxyをURLに設定すると、UTL_HTTPパッケージはそのURLをHTTPリクエスト用のプロキシ・サーバーとして使用する必要があります。環境変数no_proxyをドメイン名に設定すると、HTTPプロキシ・サーバーは指定したドメイン内のURLには使用されません。
関連項目:
UTL_HTTPパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください
source_typeパラメータの値がユーザー定義の名前の場合、source_locationパラメータにはインポート対象のユーザー定義オブジェクトにアクセスするために必要な識別子文字列が含まれ、source_nameパラメータにはインポート対象のオブジェクトの名前が含まれます。
プラグマ
なし。
例外
ORDSourceExceptions.METHOD_NOT_SUPPORTED
この例外は、importFrom( )メソッドをコールし、使用するソース・プラグインがこのメソッドをサポートしていない場合に発生します。
ORDSourceExceptions.NULL_SOURCE例外
この例外は、importFrom( )メソッドをコールし、source.localData属性の値がNULL
の場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULL
の場合に発生します。
これらの例外の詳細は、「Oracle Multimediaオブジェクトの例外」を参照してください。
例
指定した外部データ・ソースからローカル・ソースにビデオ・データをインポートします。
DECLARE obj ORDSYS.ORDVideo; ctx RAW(64) :=NULL; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2004 FOR UPDATE; DBMS_OUTPUT.PUT_LINE('setting and getting source'); DBMS_OUTPUT.PUT_LINE('--------------------------'); -- Import data: obj.importFrom(ctx,'file','FILE_DIR','speakers.rm'); -- Check size: DBMS_OUTPUT.PUT_LINE('Length is ' ||TO_CHAR(obj.getContentLength(ctx))); UPDATE pm.online_media p SET p.product_video = obj WHERE p.product_id = 2004; COMMIT; EXCEPTION WHEN ORDSYS.ORDSourceExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.put_line('Source METHOD_NOT_SUPPORTED caught'); WHEN ORDSYS.ORDVideoExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.put_line('VIDEO METHOD_NOT_SUPPORTED EXCEPTION caught'); WHEN ORDSYS.ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION THEN DBMS_OUTPUT.put_line('VIDEO PLUGIN EXCEPTION caught'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('EXCEPTION Caught'); END; /
11.5.18 processVideoCommand( )
構文
processVideoCommand(ctx IN OUT RAW, cmd IN VARCHAR2, arguments IN VARCHAR2, result OUT RAW) RETURN RAW;
説明
コマンドおよびその引数を、処理のためにフォーマット・プラグインに送信します。
注意:
このメソッドは、ユーザー定義のフォーマット・プラグインのみでサポートされます。
パラメータ
- ctx
-
フォーマット・プラグインのコンテキスト情報を指定します。(「ORDVideoのメソッドの重要な注意事項」を参照してください。)
- cmd
-
フォーマット・プラグインによって認識されるコマンドを指定します。
- arguments
-
コマンドの引数を指定します。
- result
-
フォーマット・プラグインによって戻される、このメソッドのコール結果です。
使用上の注意
このメソッドを使用して、任意のビデオ・コマンドおよびその引数をフォーマット・プラグインに送信します。指定したコマンドは、このメソッドでは解釈されず、そのままフォーマット・プラグインに渡されて処理されます。
formatの値がNULLの場合、processVideoCommand( )メソッドは、デフォルトのフォーマット・プラグインを使用します。それ以外の場合は、ユーザー定義のフォーマット・プラグインを使用します。
ORDVideoオブジェクトで認識されないフォーマットは、そのフォーマットをサポートするORDPLUGINS.ORDX_<format>_VIDEOパッケージを実装することによって、サポートできます。
関連項目:
メディア・フォーマットの拡張サポートの詳細は、『Oracle Multimediaユーザーズ・ガイド』を参照してください
プラグマ
なし。
例外
ORDVideoExceptions.METHOD_NOT_SUPPORTED
この例外は、ビデオ・プラグインでメソッドがサポートされていないか、またはビデオ・プラグインが見つからない場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULL
の場合に発生します。
ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION
この例外は、processVideoCommand( )メソッドをコールし、ビデオ・プラグインに例外が発生した場合に発生します。
これらの例外の詳細は、「Oracle Multimediaオブジェクトの例外」を参照してください。
例
なし。
11.5.19 setBitRate( )
構文
setBitRate(knownBitRate IN INTEGER);
説明
ビデオ・オブジェクトのbitRate属性の値を設定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし。
例外
ORDVideoExceptions.NULL_INPUT_VALUE
この例外は、setBitRate( )メソッドをコールし、knownBitRateパラメータの値がNULL
の場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULL
の場合に発生します。
これらの例外の詳細は、「Oracle Multimediaオブジェクトの例外」を参照してください。
例
「setFrameSize( )」の例を参照してください。
11.5.20 setCompressionType( )
構文
setCompressionType(knownCompressionType IN VARCHAR2);
説明
ビデオ・オブジェクトのcompressionType属性の値を設定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし。
例外
ORDVideoExceptions.NULL_INPUT_VALUE
この例外は、setCompressionType( )メソッドをコールし、knownCompressionTypeパラメータの値がNULL
の場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULL
の場合に発生します。
これらの例外の詳細は、「Oracle Multimediaオブジェクトの例外」を参照してください。
例
「setFrameSize( )」の例を参照してください。
11.5.21 setDescription( )
構文
setDescription (user_description IN VARCHAR2);
説明
ビデオ・データのdescription属性の値を設定します。
使用上の注意
各ビデオ・オブジェクトには、一部のクライアント・アプリケーションのために説明が必要な場合があります。たとえば、Webベースのクライアントでは、ユーザーがビデオ・データにアクセスするために選択できるビデオの説明のリストを表示できます。
Oracle MultimediaのWebアクセス・コンポーネントおよびその他のクライアント・コンポーネントでは、このdescription属性を使用して、ユーザーにビデオ・データを提示します。
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし。
例外
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULL
の場合に発生します。
この例外の詳細は、「Oracle Multimediaオブジェクトの例外」を参照してください。
例
ビデオ・データのdescription属性の値を設定します。
DECLARE obj ORDSYS.ORDVideo; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2030 FOR UPDATE; DBMS_OUTPUT.PUT_LINE('writing description'); DBMS_OUTPUT.PUT_LINE('-------------'); obj.setDescription('This is a video of a speaker'); DBMS_OUTPUT.PUT_LINE(obj.getDescription()); UPDATE pm.online_media p SET p.product_video = obj WHERE p.product_id = 2688; COMMIT; END; /
11.5.22 setFormat( )
構文
setFormat(knownFormat IN VARCHAR2);
説明
ビデオ・オブジェクトのformat属性の値を設定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし。
例外
ORDVideoExceptions.NULL_INPUT_VALUE
この例外は、setFormat( )メソッドをコールし、knownFormatパラメータの値がNULL
の場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULL
の場合に発生します。
これらの例外の詳細は、「Oracle Multimediaオブジェクトの例外」を参照してください。
例
格納されているビデオ・データのフォーマットを設定します。
DECLARE obj ORDSYS.ORDVideo; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2030 FOR UPDATE; DBMS_OUTPUT.PUT_LINE('current format'); DBMS_OUTPUT.PUT_LINE('--------------'); DBMS_OUTPUT.PUT_LINE(obj.getFormat()); obj.setFormat('rm'); DBMS_OUTPUT.PUT_LINE('new format'); DBMS_OUTPUT.PUT_LINE('--------------'); DBMS_OUTPUT.PUT_LINE(obj.getFormat()); UPDATE pm.online_media p SET p.product_video = obj WHERE p.product_id = 2030; COMMIT; EXCEPTION WHEN ORDSYS.ORDVideoExceptions.NULL_INPUT_VALUE THEN DBMS_OUTPUT.PUT_LINE('ORDVideoExceptions.NULL_INPUT_VALUE caught'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('EXCEPTION caught'); END; /
11.5.23 setFrameRate( )
構文
setFrameRate(knownFrameRate IN INTEGER);
説明
ビデオ・オブジェクトのframeRate属性の値を設定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし。
例外
ORDVideoExceptions.NULL_INPUT_VALUE
この例外は、setFrameRate( )メソッドをコールし、knownFrameRateパラメータの値がNULL
の場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULL
の場合に発生します。
これらの例外の詳細は、「Oracle Multimediaオブジェクトの例外」を参照してください。
例
「setFrameSize( )」の例を参照してください。
11.5.24 setFrameResolution( )
構文
setFrameResolution(knownFrameResolution IN INTEGER);
説明
ビデオ・オブジェクトのframeResolution属性の値を設定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし。
例外
ORDVideoExceptions.NULL_INPUT_VALUE
この例外は、setFrameResolution( )メソッドをコールし、knownFrameResolutionパラメータの値がNULL
の場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULL
の場合に発生します。
これらの例外の詳細は、「Oracle Multimediaオブジェクトの例外」を参照してください。
例
「setFrameSize( )」の例を参照してください。
11.5.25 setFrameSize( )
構文
setFrameSize(knownWidth IN INTEGER, knownHeight IN INTEGER);
説明
ビデオ・オブジェクトのheightおよびwidth属性の値を設定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし。
例外
ORDVideoExceptions.NULL_INPUT_VALUE
この例外は、setFrameSize( )メソッドをコールし、knownWidthまたはknownHeightパラメータの値がNULL
の場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULL
の場合に発生します。
これらの例外の詳細は、「Oracle Multimediaオブジェクトの例外」を参照してください。
例
ビデオ・データのフレーム・サイズ(幅および高さ)を設定します。
DECLARE obj ORDSYS.ORDVideo; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2030 FOR UPDATE; obj.setFrameSize(1,2); obj.setFrameResolution(4); obj.setFrameRate(5); obj.setVideoDuration(20); obj.setNumberOfFrames(8); obj.setCompressionType('Cinepak'); obj.setBitRate(1500); obj.setNumberOfColors(256); UPDATE pm.online_media p SET p.product_video = obj WHERE p.product_id = 2030; COMMIT; END; /
11.5.26 setKnownAttributes( )
構文
setKnownAttributes(knownFormat IN VARCHAR2, knownWidth IN INTEGER, knownHeight IN INTEGER, knownFrameResolution IN INTEGER, knownFrameRate IN INTEGER, knownVideoDuration IN INTEGER, knownNumberOfFrames IN INTEGER, knownCompressionType IN VARCHAR2, knownNumberOfColors IN INTEGER, knownBitRate IN INTEGER);
説明
ビデオ・データに既知のビデオ属性を設定します。
パラメータ
- knownFormat
-
既知のフォーマットを指定します。
- knownWidth
-
既知の幅を指定します。
- knownHeight
-
既知の高さを指定します。
- knownFrameResolution
-
既知のフレームの解像度を指定します。
- knownFrameRate
-
既知のフレーム・レートを指定します。
- knownVideoDuration
-
既知のビデオ再生時間を指定します。
- knownNumberOfFrames
-
既知のフレーム数を指定します。
- knownCompressionType
-
既知の圧縮タイプを指定します。
- knownNumberOfColors
-
既知の色数を指定します。
- knownBitRate
-
既知のビット・レートを指定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし。
例外
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULL
の場合に発生します。
この例外の詳細は、「Oracle Multimediaオブジェクトの例外」を参照してください。
例
ビデオ・データのすべての既知の属性に対して、プロパティ情報を設定します。
DECLARE obj ORDSYS.ORDVideo; width integer; height integer; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2030 FOR UPDATE; obj.setKnownAttributes('MOOV',1,2,4,5,20,8,'Cinepak', 256, 1500); obj.getFrameSize(width, height); DBMS_OUTPUT.PUT_LINE('width: ' || TO_CHAR(width)); DBMS_OUTPUT.PUT_LINE('height: ' || TO_CHAR(height)); DBMS_OUTPUT.PUT_LINE('format: ' || obj.getFormat()); DBMS_OUTPUT.PUT_LINE('frame resolution: ' || TO_CHAR(obj.getFrameResolution())); DBMS_OUTPUT.PUT_LINE('frame rate: ' || TO_CHAR(obj.getFrameRate())); DBMS_OUTPUT.PUT_LINE('video duration: ' || TO_CHAR(obj.getVideoDuration())); DBMS_OUTPUT.PUT_LINE('number of frames: ' || TO_CHAR(obj.getNumberOfFrames())); DBMS_OUTPUT.PUT_LINE('compression type: ' || obj.getCompressionType()); DBMS_OUTPUT.PUT_LINE('bit rate: ' || TO_CHAR(obj.getBitRate())); DBMS_OUTPUT.PUT_LINE('number of colors: ' || TO_CHAR(obj.getNumberOfColors())); UPDATE pm.online_media p SET p.product_video = obj WHERE p.product_id = 2030; COMMIT; END; /
11.5.27 setNumberOfColors( )
構文
setNumberOfColors(knownNumberOfColors IN INTEGER);
説明
ビデオ・オブジェクトのnumberOfColors属性の値を設定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし。
例外
ORDVideoExceptions.NULL_INPUT_VALUE
この例外は、setNumberOfColors( )メソッドをコールし、knownNumberOfColorsパラメータの値がNULL
の場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULL
の場合に発生します。
これらの例外の詳細は、「Oracle Multimediaオブジェクトの例外」を参照してください。
例
「setFrameSize( )」の例を参照してください。
11.5.28 setNumberOfFrames( )
構文
setNumberOfFrames(knownNumberOfFrames IN INTEGER);
説明
ビデオ・オブジェクトのnumberOfFrames属性の値を設定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし。
例外
ORDVideoExceptions.NULL_INPUT_VALUE
この例外は、setNumberOfFrames( )メソッドをコールし、knownNumberOfFramesパラメータの値がNULL
の場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULL
の場合に発生します。
これらの例外の詳細は、「Oracle Multimediaオブジェクトの例外」を参照してください。
例
「setFrameSize( )」の例を参照してください。
11.5.29 setProperties( )
構文
setProperties(ctx IN OUT RAW, setComments IN BOOLEAN);
説明
ビデオ・データを読み取ってオブジェクト属性の値を取得し、取得した値をオブジェクトに格納します。このメソッドは、値が使用可能なビデオ・データの属性(フォーマット、高さ、幅、フレームの解像度、フレーム・レート、ビデオ再生時間、フレーム数、圧縮タイプ、色数およびビット・レート)ごとにプロパティを設定します。setCommentsパラメータの値がTRUE
の場合、このメソッドによって、オブジェクトのコメント・フィールドに、XML形式で様々なフォーマット・プロパティおよびアプリケーション・プロパティが移入されます。
パラメータ
- ctx
-
フォーマット・プラグインのコンテキスト情報を指定します。(「ORDVideoのメソッドの重要な注意事項」を参照してください。)
- setComments
-
オブジェクトのコメント・フィールドが移入されるかどうかを示すブール値です。値が
TRUE
の場合、オブジェクトのコメント・フィールドにXML形式でビデオ・オブジェクトの様々なフォーマット・プロパティおよびアプリケーション・プロパティが移入され、値がFALSE
の場合、オブジェクトのコメント・フィールドは移入されません。デフォルト値はFALSE
です。
使用上の注意
メディア・ソースからプロパティを抽出できない場合、それぞれの属性はNULLに設定されます。
formatの値がNULLの場合、setProperties( )メソッドは、デフォルトのフォーマット・プラグインを使用します。それ以外の場合は、ユーザー定義のフォーマット・プラグインを使用します。
プラグマ
なし。
例外
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULL
の場合に発生します。
ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION
この例外は、setProperties( )メソッドをコールし、このメソッドをコールしているときに、ビデオ・プラグインに例外が発生した場合に発生します。
これらの例外の詳細は、「Oracle Multimediaオブジェクトの例外」を参照してください。
例
既知のビデオ属性のプロパティ情報を設定します。
DECLARE obj ORDSYS.ORDVideo; ctx RAW(64) :=NULL; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2030 FOR UPDATE; obj.setProperties(ctx,FALSE); UPDATE pm.online_media p SET p.product_video = obj WHERE p.product_id = 2030; COMMIT; EXCEPTION WHEN ORDSYS.ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION THEN DBMS_OUTPUT.PUT_LINE('ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION caught'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('exception raised'); END; /
11.5.30 setVideoDuration( )
構文
setVideoDuration(knownVideoDuration IN INTEGER);
説明
ビデオ・オブジェクトのvideoDuration属性の値を設定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし。
例外
ORDVideoExceptions.NULL_INPUT_VALUE
この例外は、setVideoDuration( )メソッドをコールし、knownVideoDurationパラメータの値がNULL
の場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULL
の場合に発生します。
これらの例外の詳細は、「Oracle Multimediaオブジェクトの例外」を参照してください。
例
「setFrameSize( )」の例を参照してください。