1

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 よりも遅くなるようです。

4

0 に答える 0