如何获得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

回到顶部