2012-07-24 34 views
0

我正在開發一個測試套件,需要我從Oracle數據庫中提取數據。我使用的是已經寫好的查詢,因爲它比設置所有activerecord對象更容易。我沒有使用rails,而是使用gem activerecord 3.2.6。爲什麼ActiveRecord :: Base.execute_query會在第20行之後停止返回所有結果?

我發現突然返回的14列數據中,從第21行開始,其中只有12列實際上有數據。在Oracle SQL Developer中使用時,此查詢會返回超過20行的完整數據,因此我知道這不是查詢。

難道是我需要給它更多的時間來完成返回所有的數據?這看起來不太可能,因爲它總是第21行首先出現問題。這是否是一個問題,因爲一些數據可能是NULL,並且一旦發現第一個NULL主動記錄被鎖定?

我真的不知道該怎麼做,我唯一能想到的就是嘗試安裝不同版本的activerecord,並希望其中一個能正常工作。

回答

0

「這看起來不太可能,因爲它總是第21行首先出現問題。」這是一個問題,事實是一些數據可以是NULL,並且一旦發現第一個NULL主動記錄被擰緊了?

或許你可以嘗試使行< 21(比如第8行)有一定的NULL數據,看看查詢扼流圈有一個?

+0

那麼,如果我重寫查詢,以便它重新排序數據並運行到一個NULL值,直接關閉然後沒有任何數據在最後兩列。 – 2012-07-24 19:24:00

+1

@ChrisAtkinson,嗯......我試圖說給你的查詢一組不同的測試數據(而不是僅僅重寫查詢重新排序)第21行之前發生NULL數據,因爲這是NULL出現在原始測試數據集。那麼,如果你得到14個完整的數據列,即使第8行有一些空值,那麼你就會知道這不是事實,即查詢命中了導致問題的NULL值。第21行還有你的查詢還有其他內容。我想這個想法是排除可能性。 – 2012-07-24 22:02:40

相關問題