如何获得Oracle SQL查询中错误的位置?
如何获得查询中错误的位置?
我需要在导致错误的查询字符串中获取位置,就像sqlplus
这样:
SQL> insert into tbl (data) values('12345') 2 /
insert into tbl (data) values('12345')
*
ERROR at line 1:
ORA-12899: value too large for column "schmnm"."tbl"."data" (actual: 5,
maximum: 3)
我怎样才能做到这一点?
回答:
当我几乎失去希望时,经过一番漫长的闲逛,我发现了以下链接(感谢Google中正确的搜索字符串):https
:
//forums.oracle.com/thread/1000551
SQL> DECLARE 2 c INTEGER := DBMS_SQL.open_cursor ();
3 BEGIN
4 DBMS_SQL.parse (c, 'select * form dual', DBMS_SQL.native);
5
6 DBMS_SQL.close_cursor (c);
7 EXCEPTION
8 WHEN OTHERS THEN
9 DBMS_OUTPUT.put_line ('Last Error: ' || DBMS_SQL.LAST_ERROR_POSITION ());
10 DBMS_SQL.close_cursor (c);
11 RAISE;
12 END;
13 /
Last Error: 9
DECLARE
*
ERROR at line 1:
ORA-00923: FROM keyword not found where expected
ORA-06512: at line 11
以上是 如何获得Oracle SQL查询中错误的位置? 的全部内容, 来源链接: utcz.com/qa/408743.html