これは私のコードのサンプルです。フィールドFUNCTION_SCRIPTは、テーブルIS_FUNCTIONのCLOBフィールド(唯一のCLOBフィールド)です。
public void ReadFunction(string FName, out string fContent) {
OracleCommand command = _connection.CreateCommand();
OracleTransaction transaction = _connection.BeginTransaction();
command.Transaction = transaction;
command.CommandText = "SELECT TO_CLOB(TO_NCLOB(FUNCTION_SCRIPT)) FROM IS_FUNCTION where FNAME=:fName ";
command.Parameters.Add("FName", OracleType.NVarChar).Value = FName;
OracleDataReader odr = command.ExecuteReader();
int temp = odr.GetOrdinal("FUNCTION_SCRIPT");
OracleLob myLob = odr.GetOracleLob(temp);
fContent = (String)myLob.Value;
odr.close();
}
temp = odr.GetOrdinal("FUNCTION_SCRIPT")
ステートメントを実行すると、範囲外の例外が発生します。理由がわかりませんか?私はこのCLOBフィールドを数時間読み込もうとしています。これは私が来た中で最も近いものです。あなたの助けをいただければ幸いです。
ps SELECTステートメントに問題がある可能性がありますか?私はさまざまな参照からコードを取得しています。