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のメソッド
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属性について、指定されたサブコンポーネント情報を設定します。
パラメータ
使用上の注意
import( )メソッドをコールする前に、setSourceInformation( )メソッドをコールしてsrcType、srcLocationおよびsrcName属性情報を設定し、データ・ソースの位置を記述する必要があります。importFrom( )またはexport( )メソッドをコールする場合、これらの属性はimportFrom( )またはexport( )コールが正常終了した後で設定されます。
このメソッドを使用する前に、source_locationパラメータで指定したディレクトリが存在するか、または作成されていることを確認する必要があります。
プラグマ
なし。
例外
ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION
この例外は、setSourceInformation( )メソッドをコールし、source_typeパラメータの値がNULL
の場合に発生します。
この例外の詳細は、「Oracle Multimediaオブジェクトの例外」を参照してください。
例
なし。
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オブジェクトの例外」を参照してください。
例
なし。