カーソルをループしようとしています。pl/sql でコマンド (sql と表示 - 以下を参照) を直接実行すると、より多くの行を含む結果セットが得られます。しかし、このコードを実行すると、1 行しか表示されません。
using (OracleConnection conn = new OracleConnection(connstring))
{
conn.Open();
string sql = "select close, ts from dpr@price where qot_id=2029543939 and ts>='" + start + "' and ts<='" + end + "'";
using (OracleCommand comm = new OracleCommand(sql, conn))
{
using (OracleDataReader rdr = comm.ExecuteReader())
{
while (rdr.Read())
{
Console.WriteLine(rdr.GetOracleDecimal(0));
}
}
}
}
コードは例外をスローしません (少なくとも通常の方法ではありません。つまり、停止したり、スタック トレースを書き込んだりしません)。ただし、デバッグ中にリーダーオブジェクトでこれらの行を確認できます(ここでは関係ないと思いますが、「念のため」出力を表示しています):
InitialLONGFetchSize = 'rdr.InitialLONGFetchSize' threw an exception of type 'System.NullReferenceException'
InitialLOBFetchSize = 'rdr.InitialLOBFetchSize' threw an exception of type 'System.NullReferenceException'
結果には、型DateTime
とのみが含まれる必要がありNumber (10,4)
ます。また、テーブルには lob 型または long 型のフィールドがありません。
これはテーブル スキームです。
QOT_ID NUMBER
TS DATE
CLOSE NUMBER
OPEN NUMBER
HIGH NUMBER
LOW NUMBER
KASSE NUMBER
VOLUME NUMBER
CLOSE_BID NUMBER
SPL_BEREINIGT VARCHAR2
OPEN_INTEREST NUMBER
TRADES NUMBER
TURNOVER NUMBER
HIGH_BID NUMBER
LOW_ASK NUMBER
クエリは正しく、エントリは存在します。返された行はランダムな行のようです...最初の行でも最後の行でもありません。ODAC 11 で ODT を使用しています。VS2012 を使用しており、Windows 7 (32 ビット) で作業しています。Oracle 10g に接続しています。
私が間違っている手がかりはありますか?