我的任务是编写和测试几个小的PL / SQL脚本。这超出了我的核心竞争力,但我可以通过足够的试验和错误来做到这一点。使此过程复杂化的一件事是SQ LDeveloper的错误报告。它使用行号和列号输出问题的简短描述,但行号与错误实际位置无关。也就是说,我可能在我的脚本的第52行使用=而不是:=进行赋值,但是“脚本输出”窗口中的错误说明了第37行的问题。这是一个典型的问题吗?有没有办法将报告的行号转换为实际的行号?
我正在使用SQL Developer 1.5.5。
答案 0 :(得分:3)
我知道你的意思。我每天都会遇到这个问题。我还没有完全弄清楚确切的解决方案,但它似乎与编译器处理注释的方式有关。我刚刚使用查询在我的机器上进行了测试,其中我在特定行上插入了错误。行错误:#按预期关闭。从SQL中删除注释行后,错误对应于Line#。
编辑:添加测试用例以响应Ian Carpenter
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