当前位置: 首页 > 面试题库 >

如何获得Oracle SQL查询中错误的位置?

鲁俊友
2023-03-14
问题内容

如何获得查询中错误的位置?

我需要在导致错误的查询字符串中获取位置,就像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


 类似资料:
  • 问题内容: 如果Ajax请求失败,我想捕获该错误并显示相应的消息。 我的代码如下所示,但是我无法捕获失败的Ajax请求。 我发现,当Ajax请求失败时,“ Error in Ajax”将永远不会执行。 如何处理Ajax错误并在失败时显示适当的消息? 问题答案: 从jQuery 1.5开始,您可以使用延迟对象机制: 另一种方法是使用:

  • 你好 上面的查询包括: WITH子句-本条款的目的是从2011年至2016年间购买物品的客户中识别不同的。 第一次查询-查询的主要目的是检查上述WITH子句中是否存在任何选定的。此外,该查询还应检查所选的是否与特定的匹配,并在名为的列中将其标记为 第二次查询-此查询执行的操作与第一次查询几乎相同。唯一的区别是,它在名为“DRIVE_TYPE”的列中将标记为 您可能已经注意到,在这两个查询中,都有一

  • 我试图保存并加载jsPlumb流程图,但在重新创建连接时遇到问题。当我尝试加载时,它们彼此重叠。图1显示了我如何保存流程图,图2显示了如何加载流程图。 我已经看过这个主题和这个主题,并且使用和或或简单不起作用。如果我用打印它,它会显示。我不知道这是关于版本还是其他什么的,但看起来“anchor”没有“x”和“y”。我使用的是jsPlumb 1.5.5

  • 问题内容: 这可能吗?我想以特定的顺序获取一堆结果,然后通过其ID找出行的位置,例如: 我想按字母顺序获得1的位置,它将返回2 问题答案: SELECT id, name, rank FROM ( SELECT t.id, t.name, @rownum := @rownum + 1 AS rank FROM TABLE t, (SELECT @rownum := 0) r ORDER BY na

  • 我写了一个查询 我在中设置了 2018-05-08 19:22:27.675错误1259--[nio-8080-exec-4]O.A.C.C.C.[.[.[/].[dispatcherServlet]:路径为[]的上下文中servlet[dispatcherServlet]的servlet.Service()引发异常[请求处理失败;嵌套异常为org.springframework.dao.inva

  • 问题内容: HTML代码 PHP代码 这会显示一条警告消息 ,说明是否有错误? 问题答案: 在else块中,您可以看到如何捕获MySQL错误并将其显示在警报中。