2012-06-07 34 views
3

我負責編寫和測試幾個小的PL/SQL腳本。這遠遠超出了我的核心競爭力,但我可以通過足夠的試驗和錯誤來做到這一點。 SQ LDeveloper的錯誤報告會讓這個過程複雜化。它用行和列號輸出問題的簡短描述,但行號與錯誤實際位置無關。也就是說,我可能在我的腳本的第52行使用了=而不是:=,但腳本輸出窗口中的錯誤說明了第37行的問題。在這個典型問題中?有沒有辦法將報告的行號轉換爲實際行號?SQL Developer錯誤報告 - 錯誤的行號

我正在使用SQL Developer 1.5.5。

回答

1

我明白你的意思。我每天都遇到這個問題。我仍然沒有完全想出確切的解決方案,但它似乎與編譯器如何處理註釋有關。我只是在我的機器上使用查詢在特定行上插入錯誤的地方進行了測試。線路錯誤:#按預期關閉。從SQL中刪除註釋行後,該錯誤對應於行號#。

編輯:響應添加測試用例伊恩·卡彭特

select column1 
     ,column2 
--  ,column3 
     ,column4 
from table1 
where 1=1 
and column1 = '00000000'; 

運行,然後更改爲:

select column1 
     ,column2 
--  ,column3 
     ,column4a 
from table1 
where 1=1 
and column1 = '00000000'; 

運行並得到以下錯誤:

ORA-00904: "COLUMN4A": invalid identifier 
00904. 00000 - "%s: invalid identifier" 
*Cause:  
*Action: 
Error at Line: 3 Column: 11 
+1

我看這個問題,如果你將它作爲腳本運行(F5),我相信它會報告正確的行嗎?然而,在SQL Developer Oracle技術網絡論壇上快速瀏覽一下顯示的行號錯誤報告的很多問題 –

+0

@IanCarpenter啊。謝謝你的提示。我不認爲要嘗試以腳本運行。嗯。它可能與F9如何將SQL發送到數據庫有關。 IIRC語句像SQLPlus命令一樣提交。腳本可能會像PL/SQL塊語句一樣被編譯和發送?無論如何,我只是在這裏猜測。我將不得不閱讀關於運行語句與運行腳本的更多信息。哦,並且很抱歉早些時候拼錯你的名字。我糾正了我的答案。 – tp9