gpt4 book ai didi

oracle - 如何使Oracle错误消息更加详细?

转载 作者:行者123 更新时间:2023-12-04 08:50:36 24 4
gpt4 key购买 nike

使我发疯的消息是ORA-01008 - Not all variables bound

有没有办法知道我不盯着监视器直到眼睛弹出的42个可能的变量名中的哪个拼错了?

更新:我使用ADO.NET访问数据库。就像@Justin Cave所建议的那样,它可能确实会丢失Oracle异常中的某些信息。但是我很肯定,即使在SQL Plus中,参数名称也永远不会出现。

最佳答案

通常,Oracle提供任何错误的行号和列号,但这取决于您正在使用的特定API(除非您碰巧正在编写OCI应用程序,这不太可能),有关是否调用这些API以及如何调用这些API。 。由于答案很可能最终是特定于API的,因此您使用的是什么API,并且在发生错误时(即JDBC,ODBC,OLE DB等),您的代码是什么样的?

例如,如果我编写一个变量名称拼写错误的PL/SQL块,则SQL * Plus将报告错误的行号和列号以及错误消息。另一方面,许多API在默认情况下只会报告PLS-00201错误。

SQL> declare
2 i integer;
3 begin
4 j := 1;
5 end;
6 /
j := 1;
*
ERROR at line 4:
ORA-06550: line 4, column 3:
PLS-00201: identifier 'J' must be declared
ORA-06550: line 4, column 3:
PL/SQL: Statement ignored

同样,如果您使用无效的变量名执行SQL语句,则SQL * Plus将获得列和行的位置,并在令人讨厌的字符下添加*,即
SQL> create table a( col1 number );

Table created.

SQL> insert into a( colN ) values ( 1 );
insert into a( colN ) values ( 1 )
*
ERROR at line 1:
ORA-00904: "COLN": invalid identifier

大多数PL/SQL IDE(TOAD,SQL Developer等)都会通过询问适当的OCI API来做类似的事情。确切地,这将取决于API。

关于oracle - 如何使Oracle错误消息更加详细?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/473527/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com