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.1.1 ORDVideoオブジェクトの例に使用するディレクトリの定義

例を実行する前に、次の文を発行します(c:\mydir\workは、ユーザーronがビデオ・データを検索できるディレクトリです)。これらのコマンドを実行する前に、ディレクトリ・オブジェクトを作成する権限を持ったユーザーとして接続しておく必要があります。

CREATE OR REPLACE DIRECTORY FILE_DIR as 'c:\mydir\work';
GRANT READ ON DIRECTORY FILE_DIR TO 'ron';

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オブジェクトにコピーされます。

パラメータ

data

BLOBに格納されているビデオ・コンテンツです。

setproperties

コンストラクタでsetProperties( )メソッドをコールするかどうかを決定するインジケータ・フラグです。値が1の場合、setProperties( )メソッドがコールされます。値が0の場合、メソッドはコールされません。デフォルトは0です。

プラグマ

なし。

例外

なし。

使用上の注意

オーディオ・コンテンツが一時または永続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

ソース・ビデオ・データのタイプを指定します。有効な値は、FILEHTTPLOCALまたはユーザー定義です。デフォルトは、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属性の値を戻します。

パラメータ

retWidth

フレームの幅をピクセル単位で指定します。

retHeight

フレームの高さをピクセル単位で指定します。

使用上の注意

なし。

プラグマ

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属性の値を設定します。

パラメータ

knownBitRate

ビット・レートを指定します。

使用上の注意

このメソッドをコールすると、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属性の値を設定します。

パラメータ

knownCompressionType

既知の圧縮タイプを指定します。

使用上の注意

このメソッドをコールすると、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属性の値を設定します。

パラメータ

user_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属性の値を設定します。

パラメータ

knownFormat

ビデオ・オブジェクトに設定する、既知のビデオ・データ・フォーマットを指定します。

使用上の注意

このメソッドをコールすると、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属性の値を設定します。

パラメータ

knownFrameRate

フレーム・レートを指定します。

使用上の注意

このメソッドをコールすると、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属性の値を設定します。

パラメータ

knownFrameResolution

1インチ当たりのピクセル単位で、既知のフレームの解像度を指定します。

使用上の注意

このメソッドをコールすると、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属性の値を設定します。

パラメータ

knownWidth

フレームの幅をピクセル単位で指定します。

knownHeight

フレームの高さをピクセル単位で指定します。

使用上の注意

このメソッドをコールすると、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属性の値を設定します。

パラメータ

knownNumberOfColors

既知の色数を設定します。

使用上の注意

このメソッドをコールすると、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属性の値を設定します。

パラメータ

knownNumberOfFrames

既知のフレーム数を指定します。

使用上の注意

このメソッドをコールすると、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属性の値を設定します。

パラメータ

knownVideoDuration

既知のビデオ再生時間を指定します。

使用上の注意

このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。

プラグマ

なし。

例外

ORDVideoExceptions.NULL_INPUT_VALUE

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

ORDVideoExceptions.NULL_SOURCE

この例外は、ORDVideo.source属性の値がNULLの場合に発生します。

これらの例外の詳細は、「Oracle Multimediaオブジェクトの例外」を参照してください。

「setFrameSize( )」の例を参照してください。