適用対象
説明
データベースに一時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