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 购物返积分
  • 相关阅读:
    台阶问题,100层台阶,1,2,3步组合走完。一种有几种组合?
    idea 导入gitlab项目
    查找学生信息
    谁是你潜在的朋友
    Sort
    统计同成绩学生人数
    打印日期
    今年的第几天?
    DayOfWeek
    日期差值
  • 原文地址:https://www.cnblogs.com/since1499/p/3424783.html
Copyright © 2011-2022 走看看