12 Oracle Multimedia ORDSourceオブジェクト型

Oracle Multimediaでは、様々なマルチメディア・データ・ソースへのアクセスをサポートするORDSourceオブジェクト型が提供されます。

サポートされるデータ・ソースへのアクセスには、データベース内のBLOBへのローカル・アクセス、ローカル・ファイル・システム上のBFILEに基づく外部アクセス、HTTPサーバー上のURLに基づく外部アクセス、または別のサーバー上のユーザー定義ソースに基づく外部アクセスがあります。

ORDSourceオブジェクト型は、ordsrcsp.sqlファイルで定義されています。インストール後、このファイルは次のOracleホーム・ディレクトリに格納されています。

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

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

注意:

ORDSourceオブジェクト型は、他のOracle Multimediaオブジェクトのみで使用されます。この情報は参照用としてのみ示しています。このタイプを直接使用しないことをお薦めします。

12.1 ORDSourceのメソッドの重要な注意事項

ORDSourceレベルでコールされたメソッドは、ソース・プラグインに渡されて処理され、最初の引数にctx (RAW)を取ります。これらのメソッドのいずれかをクライアントから初めてコールする場合、ctx構造体を割り当ててNULLに初期化してから、open( )メソッドをコールする必要があります。このとき、ソース・プラグインが、このクライアント用にコンテキストを初期化できます。処理が完了したら、クライアントからclose( )メソッドをコールする必要があります。

ソース・プラグインのコールからコールしたメソッドは、最初の引数にobj (ORDSource)を取り、2番目の引数にctx (RAW)を取ります。

注意:

今回のリリースでは、Oracleが提供するいずれのプラグインもctx構造体を使用しません。また、すべてのソース・プラグインまたはフォーマット・プラグインがctx構造体を使用するわけではありませんが、前述の方法でコーディングすると、アプリケーションは、現行または今後のソース・プラグインまたはフォーマット・プラグインで動作します。

ORDSourceオブジェクトは、一貫性の維持(たとえば、ローカルとupDateTime属性の)を試みません。一貫性の維持は、ユーザーが行う必要があります。ORDAudio、ORDVideo、ORDImageおよびORDDocオブジェクトは、すべてこれらのオブジェクトが含まれるORDSourceオブジェクトとの一貫性を維持します。

12.2 ORDSourceオブジェクト型

ORDSourceオブジェクト型は、様々なマルチメディア・データ・ソースへのアクセスをサポートします。このオブジェクト型の属性は、ordsrcsp.sqlファイルで次のように定義されています。

  -------------------
  -- TYPE ATTRIBUTES
  -------------------
  localData           BLOB,
  srcType             VARCHAR2(4000),
  srcLocation         VARCHAR2(4000),
  srcName             VARCHAR2(4000),
  updateTime          DATE,
  local               NUMBER,

説明:

  • localData: オブジェクト内にBLOBとしてローカルに格納されたマルチメディア・データです。ブロック・サイズに応じて、最大8TBから128TBのデータをBLOBとしてOracle Database内に格納でき、そのデータはOracleセキュリティおよびトランザクション環境によって保護されます。

  • srcType: データ・ソース・タイプです。(有効な値のリストは、表7-1を参照してください。)

  • srcLocation: srcTypeの値に基づいてデータが配置された場所です。(有効な値のリストは、表7-2を参照してください。)

  • srcName: データ・オブジェクト名です。(有効な値のリストは、表7-3を参照してください。)

  • updateTime: データの最終更新時刻です。

  • local: データがローカルかどうかを示すフラグです。有効な値は次のとおりです。

    • 1: データはBLOBに格納されています。

    • 0: データは外部ソースに格納されています。

    • NULL: データはローカルに存在します。この値は、最初に空の行を挿入したときのデフォルト状態を示すことがあります。

関連項目:

BLOBの使用方法の詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください

12.3 ORDSourceのメソッド

次のORDSourceのメソッドは、ソース・データの操作用に設計されています。

関連項目:

オブジェクト型およびメソッドの詳細は、『Oracle Database概要』を参照してください

12.3.1 clearLocal( )

構文

clearLocal( );

説明

local属性の値を、1 (データ・ソースが、データベースのBLOB内にローカルに格納されていることを意味する)から0 (データ・ソースが外部に格納されていることを意味する)にリセットします。

パラメータ

なし。

使用上の注意

このメソッドは、local属性を0(データがデータベースの外部に格納されていることを意味する)に設定します。

プラグマ

なし。

例外

なし。

なし。

12.3.2 close( )

構文

close(ctx IN OUT RAW) RETURN INTEGER;

説明

データ・ソースをクローズします。

パラメータ

ctx

ソース・プラグインのコンテキスト情報を指定します。(「ORDSourceのメソッドの重要な注意事項」を参照してください。)

使用上の注意

このメソッドのコールでは、ORDPLUGINS.ORDX_<srcType>_SOURCEプラグイン・パッケージが使用されます。

RETURN INTEGERには、成功した場合は0(ゼロ)、失敗した場合は0より大きい値(1など)が戻されます。正確な数字とその意味は、プラグインによって定義されます。たとえば、ファイル・プラグインの場合、1は「ファイルが見つからない」、2は「指定したディレクトリが見つからない」という意味です。

プラグマ

なし。

例外

ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION

この例外は、close( )メソッドをコールし、srcType属性の値がNULLの場合に発生します。

ORDSourceExceptions.METHOD_NOT_SUPPORTED

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

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

なし。

12.3.3 deleteLocalContent( )

構文

deleteLocalContent( );

説明

localData属性からローカル・データを削除します。

パラメータ

なし。

使用上の注意

このメソッドは、ローカル・ソースから外部のデータ・ソースへデータをエクスポートした後、ローカル・ソースのデータが不要になった場合にコールできます。

プラグマ

なし。

例外

なし。

なし。

12.3.4 export( )

構文

export(ctx              IN OUT RAW,
       source_type      IN VARCHAR2,
       source_location  IN VARCHAR2,
       source_name      IN VARCHAR2); 

説明

データベース内のlocalData属性から外部データ・ソースへデータをコピーします。

注意:

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

パラメータ

ctx

ソース・プラグインのコンテキスト情報を指定します。(「ORDSourceのメソッドの重要な注意事項」を参照してください。)

source_type

外部ソース・データのタイプを指定します。このパラメータでは大/小文字は区別されません。(表7-1を参照してください。)

source_location

ソース・データのエクスポート先の位置を指定します。(表7-2を参照してください。)

source_name

ソース・データのエクスポート先のオブジェクト名を指定します。(表7-3を参照してください。)

使用上の注意

このメソッドは、データをlocalData属性から、入力パラメータによって指定された外部データ・ソースにエクスポートします。

このメソッドのコールでは、ORDPLUGINS.ORDX_<srcType>_SOURCEプラグイン・パッケージが使用されます。

データをエクスポートした後も、すべての属性は変更されないままですが、srcType、srcLocationおよびsrcName属性は入力パラメータ値で更新されます。export( )メソッドをコールした後で、clearLocal( )メソッドをコールしてデータがデータベースの外部に格納されていることを示したり、deleteLocalContent( )メソッドをコールしてlocalData属性のローカル・データのコンテンツを削除できます。

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

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

たとえば、次のSQL*Plusコマンドを実行すると、ディレクトリ・オブジェクトが作成され、ディレクトリc:\mydir\work内の任意のファイルに対する読取りおよび書込み権限がユーザーronに付与されます。これらのコマンドを実行する前に、ディレクトリ・オブジェクトを作成する権限を持ったユーザーとして接続しておく必要があります。

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

これによって、ユーザーronは、ORDImageオブジェクトのexport( )メソッドを次のように使用して、このディレクトリにあるtestimg.jpgファイルにイメージをエクスポートできます。

img.export('FILE', 'FILE_DIR', testimg.jpg');

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

プラグマ

なし。

例外

ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION

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

ORDSourceExceptions.METHOD_NOT_SUPPORTED

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

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

なし。

12.3.5 getBFile( )

構文

getBFile( ) RETURN BFILE;

説明

srcType属性の値がFILEの場合に、BFILEハンドルを戻します。

パラメータ

なし。

使用上の注意

このメソッドは、srcTypeがFILEの場合にのみ使用可能です。

プラグマ

PRAGMA RESTRICT_REFERENCES(getBFile, WNDS, WNPS, RNDS, RNPS)

例外

ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION

この例外は、getBFile( )メソッドをコールし、srcType属性の値がNULLの場合に発生します。

ORDSourceExceptions.INVALID_SOURCE_TYPE

この例外は、getBFile( )メソッドをコールし、srcType属性の値がFILE以外の場合に発生します。

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

なし。

12.3.6 getContentInTempLob( )

構文

getContentInTempLob(ctx       IN OUT RAW,
                    tempLob   IN OUT NOCOPY BLOB,
                    mimeType  OUT VARCHAR2,
                    format    OUT VARCHAR2,
                    duration  IN PLS_INTEGER := 10,
                    cache     IN BOOLEAN := TRUE);

説明

現行のデータ・ソースから一時LOBへデータを転送します。一時LOBは、このコールの一部として割当ておよび初期化されます。

パラメータ

ctx

ソース・プラグインのコンテキスト情報を指定します。(「ORDSourceのメソッドの重要な注意事項」を参照してください。)

tempLob

このコールで割当てが行われる、初期化されていないBLOBロケータを指定します。

mimeType

データのMIMEタイプ(audio/basicなど)を受け取る出力パラメータです。

format

データのフォーマット(AUFFなど)を受け取る出力パラメータです。

duration

割り当てる一時LOBの存続期間を指定します。一時LOBの存続期間には、コール、トランザクションまたはセッションの経過時間を指定できます。デフォルトは、DBMS_LOB.SESSIONです。durationの各状態の有効な値は、次のとおりです。

DBMS_LOB.CALL

DBMS_LOB.TRANSACTION

DBMS_LOB.SESSION

cache

データのキャッシュを保持するかどうかを指定するブール値です。値は、TRUEまたはFALSEです。デフォルトはTRUEです。

使用上の注意

なし。

プラグマ

なし。

例外

NO_DATA_FOUND

この例外は、getContentTempInLob( )メソッドをコールし、一時LOBでの読取り操作のループでLOBの終わりに達し、LOBから読み取るバイトがそれ以上存在しない場合に発生します。(この例外はPL/SQLの事前定義例外であるため、ORD<object-type>Exceptions接頭辞は付きません。)

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

なし。

12.3.7 getContentLength( )

構文

getContentLength(ctx IN OUT RAW) RETURN INTEGER;

説明

ソースに格納されているデータのコンテンツ長を戻します。fileソースおよびlocalData属性内のデータの場合、長さはバイト数で戻されます。戻り値の単位の種類は、このメソッドを実装するプラグインによって定義されます。

パラメータ

ctx

ソース・プラグインのコンテキスト情報を指定します。(「ORDSourceのメソッドの重要な注意事項」を参照してください。)

使用上の注意

このメソッドのコールでは、ORDPLUGINS.ORDX_<srcType>_SOURCEプラグイン・パッケージが使用されます。

プラグマ

なし。

例外

ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION

この例外は、getContentLength( )メソッドをコールし、srcType属性の値がNULLの場合に発生します。

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

なし。

12.3.8 getLocalContent( )

構文

getLocalContent( ) RETURN BLOB;

説明

localData属性の内容またはBLOBハンドルを戻します。

パラメータ

なし。

使用上の注意

なし。

プラグマ

PRAGMA RESTRICT_REFERENCES(getLocalContent, WNDS, WNPS, RNDS, RNPS)

例外

なし。

なし。

12.3.9 getSourceAddress( )

構文

getSourceAddress(ctx       IN OUT RAW,
                 userData  IN VARCHAR2)  RETURN VARCHAR2;

説明

外部データ・ソースに格納されているデータのソース・アドレスを戻します。このメソッドは、ユーザー定義ソースのみで実装されます。

パラメータ

ctx

ソース・プラグインのコンテキスト情報を指定します。(「ORDSourceのメソッドの重要な注意事項」を参照してください。)

userData

目的のソース・アドレスを取得するためにソースに必要な、ユーザーからの入力情報です。

使用上の注意

ソースがこの情報を独自の方法でフォーマットする必要がある場合、このメソッドを使用して外部データ・ソースのアドレスを戻します。たとえば、getSourceAddress( )メソッドをコールして、RealNetworksサーバー・ソースのアドレスまたはOracle Fusion Middleware上のデータ・ソースを含むURLを取得します。

このメソッドのコールでは、ORDPLUGINS.ORDX_<srcType>_SOURCEプラグイン・パッケージが使用されます。

プラグマ

なし。

例外

ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION

この例外は、getSourceAddress( )メソッドをコールし、srcType属性の値がNULLの場合に発生します。

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

なし。

12.3.10 getSourceInformation( )

構文

getSourceInformation( ) RETURN VARCHAR2;

説明

外部データ・ソースに関するすべての情報を含む文字列を、URL形式で戻します。

パラメータ

なし。

使用上の注意

このメソッドは、<srcType>://<srcLocation>/<srcName>という形式のVARCHAR2文字列を戻します。srcType、srcLocationおよびsrcNameはORDSource属性の値です。

プラグマ

PRAGMA RESTRICT_REFERENCES(getSourceInformation, WNDS, WNPS, RNDS, RNPS)

例外

なし。

なし。

12.3.11 getSourceLocation( )

構文

getSourceLocation( ) RETURN VARCHAR2;

説明

外部データ・ソースの位置を戻します。

パラメータ

なし。

使用上の注意

このメソッドは、srcLocation属性の現在値(BFILEDIRなど)を戻します。

プラグマ

PRAGMA RESTRICT_REFERENCES(getSourceLocation, WNDS, WNPS, RNDS, RNPS)

例外

ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION

この例外は、getSourceLocation( )メソッドをコールし、srcType属性の値がNULLの場合に発生します。

ORDSourceExceptions.INCOMPLETE_SOURCE_LOCATION

この例外は、getSourceLocation( )メソッドをコールし、srcLocation属性の値がNULLの場合に発生します。

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

なし。

12.3.12 getSourceName( )

構文

getSourceName( ) RETURN VARCHAR2;

説明

外部データ・ソースの名前を戻します。

パラメータ

なし。

使用上の注意

このメソッドは、srcName属性の現在値(testaud.datなど)を戻します。

プラグマ

PRAGMA RESTRICT_REFERENCES(getSourceName, WNDS, WNPS, RNDS, RNPS)

例外

ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION

この例外は、getSourceName( )メソッドをコールし、srcType属性の値がNULLの場合に発生します。

ORDSourceExceptions.INCOMPLETE_SOURCE_NAME

この例外は、getSourceName( )メソッドをコールし、srcName属性の値がNULLの場合に発生します。

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

なし。

12.3.13 getSourceType( )

構文

getSourceType( ) RETURN VARCHAR2;

説明

外部データ・ソースのタイプを戻します。

パラメータ

なし。

使用上の注意

このメソッドは、srcType属性の現在値(fileなど)を戻します。

プラグマ

PRAGMA RESTRICT_REFERENCES(getSourceType, WNDS, WNPS, RNDS, RNPS)

例外

なし。

なし。

12.3.14 getUpdateTime( )

構文

getUpdateTime( ) RETURN DATE;

説明

オブジェクトが最後に変更されたタイムスタンプ、またはユーザーがsetUpdateTime( )メソッドを明示的にコールして設定したタイムスタンプを戻します。(このメソッドは、updateTime属性の値を戻します。)

パラメータ

なし。

使用上の注意

なし。

プラグマ

PRAGMA RESTRICT_REFERENCES(getUpdateTime, WNDS, WNPS, RNDS, RNPS)

例外

なし。

なし。

12.3.15 import( )

構文

import(ctx       IN OUT RAW,
       mimeType  OUT VARCHAR2,
       format    OUT VARCHAR2);

説明

外部データ・ソース(最初にsetSourceInformation( )をコールして指定されたソース)からデータベース内のlocalData属性へデータを転送します。

パラメータ

ctx

ソース・プラグインのコンテキスト情報を指定します。この情報は、import( )コールを処理するソース・プラグインへ未解釈のまま渡されます。(「ORDSourceのメソッドの重要な注意事項」を参照してください。)

mimeType

データのMIMEタイプ(audio/basicなど)を受け取る出力パラメータ(存在する場合)です。

format

データのフォーマット(AUFFなど)を受け取る出力パラメータ(存在する場合)です。

使用上の注意

このメソッドをコールする前に、setSourceInformation( )メソッドをコールしてsrcType、srcLocationおよびsrcName属性の値を設定し、データ・ソースの位置を記述します。

このメソッドのコールでは、ORDPLUGINS.ORDX_<srcType>_SOURCEプラグイン・パッケージが使用されます。

外部データ・ソースからローカル・ソース(Oracleデータベース内)にデータをインポートした後も、ソース情報は変更されません(データのインポート元のソースを指したままです)。

srcType属性の値がFILEの場合、srcLocation属性にはインポート対象のファイルを格納したデータベース・ディレクトリ・オブジェクトの名前が含まれ、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;

srcType属性の値がHTTPの場合、srcLocation属性にはインポート対象のオブジェクトを格納したソース・ディレクトリを検索するために必要なベースURLが含まれ、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( )メソッドをコールし、srcType属性の値がNULLの場合に発生します。

ORDSourceExceptions.METHOD_NOT_SUPPORTED

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

ORDSourceExceptions.NULL_SOURCE

この例外は、import( )メソッドをコールし、localData属性の値がNULLの場合に発生します。

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

なし。

12.3.16 importFrom( )

構文

importFrom(ctx              IN OUT RAW,
           mimeType         OUT VARCHAR2,
           format           OUT VARCHAR2
           source_type      IN VARCHAR2,
           source_location  IN VARCHAR2,
           source_name      IN VARCHAR2);

説明

指定された外部データ・ソース(タイプ、位置、名前)からデータベース内のlocalData属性へデータを転送し、source属性とタイムスタンプをリセットします。

パラメータ

ctx

ソース・プラグインのコンテキスト情報を指定します。この情報は、importFrom( )コールを処理するソース・プラグインへ未解釈のまま渡されます。(「ORDSourceのメソッドの重要な注意事項」を参照してください。)

mimeType

データのMIMEタイプ(audio/basicなど)を受け取る出力パラメータ(存在する場合)です。

format

データのフォーマット(AUFFなど)を受け取る出力パラメータ(存在する場合)です。

source_type

インポートするソース・データのタイプを指定します。これによって、srcType属性も設定されます。(表7-1を参照してください。)

source_location

インポート元のソース・データの位置を指定します。これによって、srcLocation属性も設定されます。(表7-2を参照してください。)

source_name

インポートするソース・データの名前を指定します。これによって、srcName属性も設定されます。(表7-3を参照してください。)

使用上の注意

このメソッドは、タイプ、位置および名前パラメータの値を指定することによって、データ・ソースの位置を記述します。これらの各パラメータは、importFrom( )操作が正常終了した後に、srcType、srcLocationおよびsrcName属性値をそれぞれ設定します。このメソッドは、setSourceInformation( )メソッドおよびそれに続くimport( )メソッドの組合せです。

このメソッドのコールでは、ORDPLUGINS.ORDX_<srcType>_SOURCEプラグイン・パッケージが使用されます。

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;

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( )メソッドをコールし、localData属性の値がNULLの場合に発生します。

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

なし。

12.3.17 isLocal( )

構文

isLocal( ) RETURN BOOLEAN;

説明

データがlocalData属性のBLOBでローカルに格納される場合はTRUEを、データが外部に格納される場合はFALSEを戻します。

パラメータ

なし。

使用上の注意

local属性が1またはNULLに設定されている場合、このメソッドはTRUEを戻します。それ以外の場合は、FALSEを戻します。

プラグマ

PRAGMA RESTRICT_REFERENCES(isLocal, WNDS, WNPS, RNDS, RNPS)

例外

なし。

なし。

12.3.18 open( )

構文

open(userArg IN RAW, ctx OUT RAW) RETURN INTEGER;

説明

データ・ソースをオープンします。ctxパラメータを受け取る他の任意のメソッドをコールする前に、このメソッドをコールすることをお薦めします。

パラメータ

userArg

ユーザー定義の入力パラメータを指定します。

ctx

ソース・プラグインのコンテキスト情報を指定します。(「ORDSourceのメソッドの重要な注意事項」を参照してください。)

使用上の注意

このメソッドのコールでは、ORDPLUGINS.ORDX_<srcType>_SOURCEプラグイン・パッケージが使用されます。

RETURN INTEGERには、成功した場合は0(ゼロ)、失敗した場合は0より大きい値(1など)が戻されます。正確な数字とその意味は、プラグインによって定義されます。たとえば、ファイル・プラグインの場合、1は「ファイルが見つからない」、2は「指定したディレクトリが見つからない」という意味です。

プラグマ

なし。

例外

ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION

この例外は、open( )メソッドをコールし、srcType属性の値がNULLの場合に発生します。

ORDSourceExceptions.METHOD_NOT_SUPPORTED

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

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

なし。

12.3.19 processCommand( )

構文

processCommand(ctx      IN OUT RAW,
               command  IN VARCHAR2,
               arglist  IN VARCHAR2,
               result   OUT RAW) RETURN RAW;

説明

コマンドおよび関連する引数をソース・プラグインに送信します。このメソッドは、ユーザー定義ソースのみでサポートされています。

パラメータ

ctx

ソース・プラグインのコンテキスト情報を指定します。(「ORDSourceのメソッドの重要な注意事項」を参照してください。)

command

ソース・プラグインで認識される任意のコマンドを指定します。

arglist

コマンドの引数を指定します。

result

ソース・プラグインによって戻される、このメソッドのコール結果です。

使用上の注意

このメソッドを使用して、任意のコマンドおよびその引数をプラグインに送信します。指定したコマンドは、このメソッドでは解釈されず、そのまま渡されて処理されます。

このメソッドのコールでは、ORDPLUGINS.ORDX_<srcType>_SOURCEプラグイン・パッケージが使用されます。

プラグマ

なし。

例外

ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION

この例外は、processCommand( )メソッドをコールし、srcType属性の値がNULLの場合に発生します。

ORDSourceExceptions.METHOD_NOT_SUPPORTED

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

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

なし。

12.3.20 read( )

構文

read(ctx       IN OUT RAW,
     startPos  IN INTEGER,
     numBytes  IN OUT INTEGER,
     buffer    OUT RAW); 

説明

ソースの開始位置(startPos)からnumBytesのバッファを読み取ります。

パラメータ

ctx

ソース・プラグインのコンテキスト情報を指定します。(「ORDSourceのメソッドの重要な注意事項」を参照してください。)

startPos

データ・ソースの開始位置を指定します。

numBytes

データ・ソースから読み取るバイト数を指定します。

buffer

データの読取り先のバッファです。

使用上の注意

このメソッドは、HTTPソースにはサポートされていません。

HTTPソース・タイプの読取りを確実に行うには、URLソース全体の読取り要求を実行する必要があります。HTTPソース・タイプ用の読取りメソッドを実装するには、HTTPソース・タイプ用に修正したソース・プラグイン内で、このメソッドを独自に実装する必要があります。

このメソッドのコールでは、ORDPLUGINS.ORDX_<srcType>_SOURCEプラグイン・パッケージが使用されます。

プラグマ

なし。

例外

ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION

この例外は、read( )メソッドをコールし、srcType属性の値がNULLの場合に発生します。

ORDSourceExceptions.METHOD_NOT_SUPPORTED

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

ORDSourceExceptions.NULL_SOURCE

この例外は、read( )メソッドをコールし、local属性の値が1またはNULLだが、localData属性の値がNULLの場合に発生します。

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

なし。

12.3.21 setLocal( )

構文

setLocal( );

説明

BLOBデータがデータベース内のlocalData属性に格納されていることを示すlocal属性を設定します。

パラメータ

なし。

使用上の注意

このメソッドは、local属性を1(データがlocalData属性でローカルに格納されていることを意味する)に設定します。

プラグマ

なし。

例外

なし。

なし。

12.3.22 setSourceInformation( )

構文

setSourceInformation(source_type      IN VARCHAR2,
                     source_location  IN VARCHAR2,
                     source_name      IN VARCHAR2);

説明

外部データ・ソースを記述するsrcType、srcLocationおよびsrcName属性について、指定されたサブコンポーネント情報を設定します。

パラメータ

source_type

外部ソース・データのタイプを指定します。(表7-1を参照してください。)

source_location

外部ソース・データの位置を指定します。(表7-2を参照してください。)

source_name

外部ソース・データの名前を指定します。表7-3を参照)

使用上の注意

import( )メソッドをコールする前に、setSourceInformation( )メソッドをコールしてsrcType、srcLocationおよびsrcName属性情報を設定し、データ・ソースの位置を記述する必要があります。importFrom( )またはexport( )メソッドをコールする場合、これらの属性はimportFrom( )またはexport( )コールが正常終了した後で設定されます。

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

プラグマ

なし。

例外

ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION

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

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

なし。

12.3.23 setUpdateTime( )

構文

setUpdateTime(current_time DATE);

説明

updateTime属性の値を、指定された時刻に設定します。

パラメータ

current_time

更新時刻を指定します。

使用上の注意

current_timeがNULLの場合、updateTimeはSYSDATE(現在の時刻)に設定されます。

プラグマ

なし。

例外

なし。

なし。

12.3.24 trim( )

構文

trim(ctx     IN OUT RAW,
     newlen  IN INTEGER) RETURN INTEGER;

説明

データ・ソースを切り捨てます。

パラメータ

ctx

ソース・プラグインのコンテキスト情報を指定します。(「ORDSourceのメソッドの重要な注意事項」を参照してください。)

newlen

切捨て後の新しい長さを指定します。

使用上の注意

このメソッドのコールでは、ORDPLUGINS.ORDX_<srcType>_SOURCEプラグイン・パッケージが使用されます。

RETURN INTEGERには、成功した場合は0(ゼロ)、失敗した場合は0より大きい値(1など)が戻されます。正確な数字とその意味は、プラグインによって定義されます。たとえば、ファイル・プラグインの場合、1は「ファイルが見つからない」、2は「指定したディレクトリが見つからない」という意味です。

プラグマ

なし。

例外

ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION

この例外は、trim( )メソッドをコールし、srcType属性の値がNULLの場合に発生します。

ORDSourceExceptions.METHOD_NOT_SUPPORTED

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

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

なし。

12.3.25 write( )

構文

write(ctx       IN OUT RAW,
      startPos  IN INTEGER,
      numBytes  IN OUT INTEGER,
      buffer    IN RAW); 

説明

ソースの開始位置(startPos)からnumBytesのバッファを書き込みます。

パラメータ

ctx

ソース・プラグインのコンテキスト情報を指定します。(「ORDSourceのメソッドの重要な注意事項」を参照してください。)

startPos

バッファのコピー先のソースの開始位置を指定します。

numBytes

ソースに書き込むバイト数を指定します。

buffer

データの書込み先のバッファを指定します。

使用上の注意

このメソッドは、ソースで、任意のバイト位置からnumBytesの書込みが可能であることを想定しています。たとえば、FILEおよびHTTPソース・タイプは書込みできないため、このメソッドをサポートしていません。

このメソッドのコールでは、ORDPLUGINS.ORDX_<srcType>_SOURCEプラグイン・パッケージが使用されます。

プラグマ

なし。

例外

ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION

この例外は、write( )メソッドをコールし、srcType属性の値がNULLの場合に発生します。

ORDSourceExceptions.METHOD_NOT_SUPPORTED

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

ORDSourceExceptions.NULL_SOURCE

この例外は、read( )メソッドをコールし、local属性の値が1またはNULLで、localData属性の値がNULLの場合に発生します。

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

なし。