zoukankan      html  css  js  c++  java
  • ORA-30004 错误处理

    一、问题情景:

    原SQL:

    select c.CATEGORY_ID,
           c.CATEGORY_NAME,
           SYS_CONNECT_BY_PATH(c.CATEGORY_NAME, '/') PATH
      from TBL_CATEGORY_PATH c
     start with c.CATEGORY_ID = 0
    connect by c.PARENT_NODE_ID =prior c.NODE_ID

    在执行上述SQL语句时,Oracle报错误 ORA-30004 具体出错如下:

    出错:java.sql.SQLException: ORA-30004: when using SYS_CONNECT_BY_PATH function, cannot have seperator as part of column value

    二、分析:

    错误提示的含义是:当使用SYS_CONNECT_BY_PATH 函数时,不能将分隔符作为字段值的一部分。

    根据此含义,猜测是否某条记录的该字段内容包含有我们的分割符“/”。据此思路,检查了所有记录的“CATEGORY_NAME”字段内容,确实发现了有一条记录该字段内容就包含了“/”。

     

    三、最简单的办法是改用其他的分割符号就可以。

    select c.CATEGORY_ID,
           c.CATEGORY_NAME,
           SYS_CONNECT_BY_PATH(c.CATEGORY_NAME, '||') PATH
      from TBL_CATEGORY_PATH c
     start with c.CATEGORY_ID = 0
    connect by c.PARENT_NODE_ID = c.NODE_ID

    http://www.xueshengweb.com 最火最热 学省网 积分=¥=iphone 购物返积分
  • 相关阅读:
    HTML5与HTML的区别
    0918练习整理
    0904 未来展望
    ajax弹出窗口
    AjAX请求后台,无刷新更新页面
    Jquery通过Ajax方式来提交Form表单
    php的socket通信
    次短路[SPFA]
    [Usaco2008 Open]Roads Around The Farm分岔路口[水题]
    [Usaco2008 Nov]Guarding the Farm 保卫牧场[DFS]
  • 原文地址:https://www.cnblogs.com/since1499/p/3424783.html
Copyright © 2011-2022 走看看