我從來沒見過這樣...我有開始了這樣的查詢:表或視圖不存在 - 甲骨文抱怨一個逗號,而不是實際的表或視圖名稱
with q1 as
(select a.V_ID, a.D_ID, a.C_ID,
case when a.percent > 0 THEN 'Y' ELSE 'N' end L_val,
a.C_val
from ab_a_table a
where a.C_ID = '00000003' -- '00000007' -- test values
and a.B_VAL = '6010001'
and a.Q = '11234567')
select case
when ... /* rest of query omitted */
當我嘗試運行這個時,Oracle抱怨那table or view does not exist
。但它突出了「」第3行,而不是實際的表/視圖名稱:
case when a.percent > 0 THEN 'Y' ELSE 'N' end L_VAL, * ERROR at line 3: ORA-00942: table or view does not exist
我省略了查詢的其餘部分是相當漫長和複雜的 - 我會消毒,如有必要將它張貼 - 現在我只是說,只有當我添加了第三個子查詢q1
時纔會出現此錯誤。事實上,我似乎可以刪除3個子查詢中的任何一個,並且整個事情都會執行(儘管結果不正確),所以感覺我已經遇到了某種Oracle錯誤,而不是純粹的SQL錯誤。同樣有趣的是,我可以將q1
作爲獨立查詢運行,當我這樣做時沒有問題。只有當我運行整個查詢時,它會在q1
中的案例之後抱怨逗號。
有沒有人遇到過這個?
(使用Oracle 10g)。
編輯:嘗試添加AS
關鍵字。現在的結果:
case when a.perc_fault > 0 THEN 'Y' ELSE 'N' end AS L_VAL, a.C_VAL * ERROR at line 3: ORA-00942: table or view does not exist
它看起來像星號是在相同的位置,但根據V
因爲這個詞L_VAL
已被3個字符移位。很奇怪......
這是怎樣的一個長鏡頭,但嘗試改變線問題「情況下,當a.percent> 0,則‘Y’ELSE‘N’年底AS L_VAL」 - 換句話說,添加「AS」關鍵詞。 – 2011-04-12 14:25:52
@Bob Jarvis:我現在在問題中添加了'AS' keywored,結果。 – FrustratedWithFormsDesigner 2011-04-12 14:28:30
顯然,該錯誤不在公共表格表達式中,因此您應該發佈完整的聲明。我強烈認爲高亮簡單地指出錯誤的位置 - 無論工具,它是不突出顯示,因爲「甲骨文」不做錯誤突出 – 2011-04-12 15:45:30