產生下面是我的查詢看起來像在表1,表2什麼是表的數據類型在運行時
SELECT * FROM (SELECT * FROM table1 t1 WHERE col3='abc')
INNER JOIN table2 t2 ON t1.col1=t2.col1
INNER JOIN table3 t3 ON t2.col1=t3.col1
數據類型的所有列,表3爲varchar。
我假設執行查詢時,首先將table1存儲在內存中,然後加入操作將在條件下完成。
當table1存儲在內存中時,列的數據類型是否與表定義中的相同?因爲如果數據類型改變連接條件的bcoz,它可能會引發一些錯誤。
我這個查詢實際上是一個視圖和亞姆獲得以下錯誤。 1.在運行RUNSTATS時:
該實用程序無法生成統計信息。錯誤 「-420」 被 返回.. SQLCODE = -2310,SQLSTATE =,DRIVER = 3.61.75
- 當運行此查詢,而無需使用其視圖名稱(我的意思是直接運行查詢) [jcc] [t4] [1026] [11213] [3.61.75]由於內部JCC錯誤引發的錯誤檢查異常。請聯繫支持。
- 儘管運行的查詢
SELECT * from view
;
消息文本:服務器上發生錯誤。嚴重性代碼8.從服務器返回的代碼無例外 。 ERRORCODE = -4228,SQLSTATE =空
無效字符的功能 「DECFLOAT」 .. SQLCODE = -420,SQLSTATE = 22018,DRIVER的字符串參數發現= 3.61.75
我使用DB2 LUW 9.5
試試這個:(SELECT * FROM表1 T1 WHERE COL3 ='abc')t1 – PeterRing
這可能是一個愚蠢的問題,但你有沒有檢查函數DECFLOAT在字符串參數中的無效字符? –
您不能假設「...先將table1存儲在內存中......」。 SQL優化器決定實際的執行順序。 – jarlh