適用対象
説明
ローカル・ファイルの一部またはすべてをこのオブジェクトの内部LOB値にロードまたはコピーします。
使用方法
OraBlob.CopyFromFile "blob.bmp" amount, offset, chunksize OraClob.CopyFromFile "clob.txt" amount, offset, chunksize
引数
このメソッドの引数は、次のとおりです。
| 引数 | 説明 |
|---|---|
[in] filename |
読み取るファイルの絶対パスとファイル名を指定する文字列。 |
[in] [オプション] amount |
コピーする最大バイト数を指定するためのInteger。デフォルト値は、総ファイル・サイズです。 |
[in] [オプション] offset |
このオブジェクトのBLOBまたはCLOB値の絶対オフセットを指定するためのIntegerで、OraBLOBまたはOraBFILEの場合はバイト数、OraCLOBの場合は文字数を示します。デフォルト値は1です。 |
[in] [オプション] chunksize |
各読込み操作に対するサイズをバイトで指定するためのInteger。chunksizeパラメータが設定されていないか0の場合、amount引数の値が使用され、その量すべてが1つのチャンクで転送されます。 |
備考
このメソッドのコール前に、行レベルまたはオブジェクト・レベルでロックを取得する必要があります。
ファイルは、NLS_LANG設定と同じ書式である必要があります。
|
注意: WriteやCopyFromFileなど、LOBのメソッドを使用したLOBの操作では、古いデータと比較して新しいデータが短い場合、LOBオブジェクトは自動的に切り捨てられません。LOBオブジェクトを新しいデータのサイズに縮小するには、Trim(OraLOB)メソッドを使用します。 |
例
例: CopyFromFileメソッドの使用方法
この例では、CopyFromFileメソッドの使用方法を示します。
データベースにPART表があり、その表に有効なLOBデータが含まれていることを確認してください。また、「LOBデータ型の例で使用されているスキーマ・オブジェクト」の説明に従ってOraLOBスキーマ・オブジェクトをインストールしていることを確認してください。
Dim OraSession As OraSession
Dim OraDatabase As OraDatabase
Dim PartImage as OraBLOB
'Create the OraSession Object.
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
'Create the OraDatabase Object by opening a connection to Oracle.
Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
'Create a Dynaset containing a BLOB and a CLOB column
set part = OraDatabase.CreateDynaset ("select * from part where" & _
"part_id = 1234",0)
set PartImage = part.Fields("part_image").Value
'copy the entire content of partimage.jpg file to LOBS
part.Edit
PartImage.CopyFromFile "partimage.jpg"
part.Update