6

我的任务是编写和测试几个小型 PL/SQL 脚本。这超出了我的核心能力,但我可以通过足够的反复试验来做到这一点。使此过程复杂化的一件事是 SQ LDeveloper 的错误报告。它使用行号和列号输出问题的简短描述,但行号与错误的实际位置无关。也就是说,我可能在脚本的第 52 行使用 = 而不是 := 进行赋值,但“脚本输出”窗口中的错误说明了第 37 行的问题。这是一个典型的问题吗?有没有办法将报告的行号转换为实际行号?

我正在使用 SQL Developer 1.5.5。

4

1 回答 1

4

我明白你的意思。我每天都会遇到这个问题。我还没有完全弄清楚确切的解决方案,但它似乎与编译器如何处理注释有关。我刚刚使用查询在我的机器上做了一个测试,在该查询中我在特定行上插入了一个错误。Line: # 处的错误按预期关闭。从 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
于 2012-06-08T19:12:47.693 回答