CLOB を返す関数 Funt() を作成しました。この関数を呼び出すには、「select Funt() from DUAL」を使用しました。このクエリを SQL Developer から直接実行すると、すぐに終了します。しかし、OracleDataReader と OracleDataAdapter を使用してこのクエリを実行すると、どちらも完了しませんでした。何か案が?
編集1:コードは次のとおりです。reader.Read() でハングしました。
OracleCommand command = new OracleCommand("select Funt() from DUAL", oraConnection);
OracleDataReader reader = command.ExecuteReader();
while (reader.Read())
{
using (OracleLob lob = reader.GetOracleLob(0))
{
using(StreamReader sr = new StreamReader(lob,Encoding.Unicode))
{
String msg = sr.ReadLine();
}
}
}
編集 2 : CLOB を返すだけの単純な関数を作成し、このコードで動作します。
編集 3 : .NET からこの方法で関数を実行すると、SQL Developer よりも遅くなるようです。