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 购物返积分
  • 相关阅读:
    杭电 oj2602~(0-1背包问题)
    杭电oj~1005 简单的找周期
    poj 2524~并查集基础
    poj 1611~并查集基础
    poj1182~食物链~带权并查集
    杭电 oj3047~带权并查集
    杭电 oj1232~并查集
    杭电 oj2033~
    VS2013使用过程中出现的一些问题:
    python学习笔记:
  • 原文地址:https://www.cnblogs.com/since1499/p/3424783.html
Copyright © 2011-2022 走看看