ヘッダーをスキップ
Oracle® Objects for OLE開発者ガイド
11gリリース2(11.2)for Microsoft Windows
B58887-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

CreateTempBLOB/CLOBメソッド

適用対象

OraDatabaseオブジェクト

説明

データベースに一時LOBを作成します。

使用方法

Set OraBLOB = OraDatabase.CreateTempBLOB(use_caching) Set OraCLOB = OraDatabase.CreateTempCLOB(use_caching)

引数

このメソッドの引数は、次のとおりです。

引数 説明
use_caching このLOBにアクセスする際にOracle Databaseでキャッシュを使用するかどうかを指定するブール値。デフォルト値はFALSEです。

備考

一時LOBは、データベースに永続的に存在しないLOBです。OO4Oのプログラミングでは一般的に、一時LOBを、LOB引数を含むストアド・プロシージャおよびファンクションへ渡すために使用します。

一時LOBは、トランザクションには関係ありません。(書込み操作の前にロックを取得する必要はなく、また、ロールバックは一時LOBには影響を与えません。)

use_caching引数は、一時LOBにアクセスする際にOracleでキャッシュを使用するよう指定します。これは、1つのLOBに複数のアクセスが予想される場合に推奨します。LOBを作成してデータを格納し、ストアド・プロシージャに渡した後破棄する、といった通常の場合にはキャッシュは必要ありません。

一時LOBは、対応するOraBLOBまたはOraCLOBへの参照がクライアントに存在しなくなるまで、データベースに存在します。これらの参照には、一時OraBLOBまたはOraCLOBオブジェクトを含む任意のOraParameterまたはOraParamArrayが含まれることに注意してください。

例: 一時CLOBをストアド・プロシージャに渡す方法

次の例では、CreateTempClobメソッドを使用してOraCLOBを作成する方法を示します。作成されたOraCLOBは、データが移入され、CLOB型の引数を含むストアド・プロシージャに渡されます。

Dim OraSession as OraSession 
Dim OraDatabase as OraDatabase
Dim OraClob as OraClob 
 
'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 the stored procedure used in this example 
OraDatabase.ExecuteSQL ("create or replace procedure GetClobSize" & _
           "(in_clob IN CLOB, clobsize OUT NUMBER) as Begin clobsize" & _ 
           " := DBMS_LOB.GETLENGTH(in_clob); End;") 
 
'create an OraParameter object to represent Clob bind Variable 
OraDatabase.Parameters.Add "CLOB", Null, ORAPARM_INPUT,  ORATYPE_CLOB 
 
'the size will go into this bind variable 
OraDatabase.Parameters.Add "CLOBSIZE", Null, ORAPARM_OUTPUT,  ORATYPE_NUMBER 
 
' create a temporary CLOB 
set OraClob = OraDatabase.CreateTempClob 
 
'Populate the OraClob with some data. Note that no row locks are needed. 
OraClob.Write "This is some test data" 
 
'set the Parameter Value to the temporary Lob 
OraDatabase.Parameters("CLOB").Value = OraClob 
 
'execute the sql statement which updates Address in the person_tab 
OraDatabase.ExecuteSQL ("Begin GetClobSize(:CLOB, :CLOBSIZE); end;") 
 
'Display the size 
MsgBox OraDatabase.Parameters("CLOBSize").Value 
 
'these two lines force the temporary clob to be freed immediately 
OraDatabase.Parameters.Remove "CLOB" 
Set OraClob = nothing