SELECT r1.region_id,parent_id          FROM cnl_region r1         WHERE r1.region_id =1         START WITH r1.region_id = 1        CONNECT BY PRIOR r1.region_id = r1.parent_id

在运行上面的SQL语句时它会报ORA-01436的错误,报这个错误原因是因为产生了循环。后来查找我的数据发现,数据region_id为1的parent_id为24684,而region_id为24684的parent_id为1,这样就产生了循环后来我把数据改过来就运行正常了。

不改变数据将下面的SQL语句改为让它不产生循环

SELECT r1.region_id,parent_id          FROM cnl_region r1         WHERE r1.region_id =1         START WITH r1.region_id = 1        CONNECT BY NOCYCLE PRIOR r1.region_id = r1.parent_id

--start with ... connect by 层次查询的用法
--建表语句
create table automobiles(
part_id number(5)
constraint pk_auto_part_id primary key,
parent_id number(5)
constraint fk_auto_ppid_ references automobiles(part_id),
part_cname varchar2(30) not null,
part_ename varchar2(30) not null,
mp_cost number(9,2),
desribe varchar2(20)
);
--插入数据

insert into automobiles values( 1,1,'汽车','mobile',84321.99,'Assembly');insert into automobiles values( 2,1,'车身','bodywork',19892.99,'Manufacture');insert into automobiles values( 3,1,'发送机','engine',42128,'Purchase');insert into automobiles values( 4,1,'附件','attached',15212,'Assembly');insert into automobiles values( 5,2,'保险杠','bumper',4812.95,'Purchase');insert into automobiles values( 6,2,'底盘','chassis',12795.11,'Manufacture');insert into automobiles values( 7,2,'行李箱','Boot',812.11,'Manufacture');insert into automobiles values( 8,6,'车轮','Wheel',2062.2,'Manufacture');insert into automobiles values( 9,6,'挡泥板','Mudguard',990,'Manufacture');insert into automobiles values( 10,8,'轮胎','Tyre',300,'Purchase');insert into automobiles values( 11,3,'发送机盘','Bonnet',3212,'Manufacture');insert into automobiles values( 12,3,'活塞','Piston',1112.2,'Manufacture');insert into automobiles values( 13,3,'汽化器','Carburetter',712.29,'Manufacture');insert into automobiles values( 14,4,'变速器','Gearbox',5712.25,'Manufacture');insert into automobiles values( 15,4,'仪表板','Dashboard',538.92,'Manufacture');insert into automobiles values( 16,14,'制动器','Carburetter',712.29,'Manufacture');insert into automobiles values( 17,14,'变速杆','Gearshift',2001,'Manufacture');insert into automobiles values( 18,17,'传动轴','Shaft',1101,'Manufacture');insert into automobiles values( 19,15,'里程表','Milometer',350.28,'Purchase');/--分层sql脚本语句练习select level,part_id,parent_id,part_cname,part_ename,mp_cost,desribe from automobilesstart with part_id=1connect by prior part_id=parent_id order by level;--缩进显示select level,    lpad(' ',2*level-1)||part_cname||' '||part_ename as partNamefrom automobilesstart with part_id=1connect by prior part_id=parent_id order by level;

在执行select level语句的时候,报如下错误:ORA-01436: CONNECT BY loop in user data
解决方案:
将第一条数据中的parent_id改为null,否则loop循环找parent_id就找不到了!

【转载地址】http://blog.csdn.net/weikaifenglove/article/details/4206979

java.sql.SQLException: ORA-01436: 用户数据中的 CONNECT BY 循环相关推荐

  1. ORA-01436: 用户数据中的CONNECT BY 循环

    起始地     目的地     距离(公里) A             B             1000 A             C             1100 A           ...

  2. ORA-01436: 用户数据中的 CONNECT BY 循环

    SELECT r1.region_id,parent_id           FROM cnl_region r1          WHERE r1.region_id =1         ST ...

  3. 数据库异常---ORA-01436: 用户数据中的 CONNECT BY loop in user data 循环

    数据库 ORA-01436: 用户数据中的 CONNECT BY  loop in user data  循环 技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社 ...

  4. Java笔记-解决Cause: java.sql.SQLException: 试图在只读事务中修改数据(达梦数据库)

    解决方法: @Transactional(readOnly=false) 这里要注意,可能会失效,一定要放对位置. 要包住所有sql调用的函数的上面,不要只包一部分,不然不会生效的.

  5. ORACLE各种常见java.sql.SQLException归纳

    java.sql.SQLException错误! ORA-00904:     --invalid column name 无效列名 ORA-00942: --table or view does n ...

  6. oracle错误(一) ORA-各种常见java.sql.SQLException小结

    ORA-00904: --invalid column name 无效列名ORA-00942: --table or view does not exist 表或者视图不存在ORA-01400: -- ...

  7. oracle ora-各种常见java.sql.SQLException归纳

    va.sql.SQLException错误! ORA-00904:     --invalid column name 无效列名 ORA-00942: --table or view does not ...

  8. oracle ora-各种常见java.sql.SQLException归结

    oracle ora-各种常见java.sql.SQLException归纳 java.sql.SQLException错误! ORA-00904:     --invalid column name ...

  9. java.sql.SQLException错误

    java.sql.SQLException错误! ORA-00904: –invalid column name 无效列名 ORA-00942: –table or view does not exi ...

最新文章

  1. java练习:模拟试下你斗地主的洗牌、发牌、看牌功能
  2. C 语言编程 — 高级数据类型 — 枚举
  3. 图像中里面的Ground Truth
  4. 医学图像处理期末复习(二)
  5. MySQL创建用户报错 -- ERROR 1396 (HY000): Operation CREATE USER failed for ‘user_name‘@‘localhost‘
  6. SimpleDateFormat线程不安全了?这里有5种解决方案
  7. python怎么隐藏输入法,隐藏输入法和弹出输入法
  8. AOP日志组件 多次获取post参数
  9. 520来袭,程序猿的浪漫 - 前端情书
  10. 大陆身份证号码格式校验代码
  11. 动画必须有(二):悬浮菜单了解一下!
  12. elementui table tooltip产出展示三个点,并且提示
  13. obs多推流地址_腾讯推流直播教程OBS下载、安装、使用
  14. 每个人都会经历一段迷茫
  15. 北斗通讯协议4.0 java_北斗一串口协议4.0.pdf
  16. 开源搜索引擎评估:lucene sphinx elasticsearch
  17. 【测试开发】web 自动化测试 --- selenium4
  18. DailyFi - 9.20|NFT 平台 Vera 将于明日在 Polkastarter 上 IDO
  19. 计算机类SCI杂志排名
  20. Java日志管理最佳实践

热门文章

  1. 信贷风控三:如何搭建知识图谱,赋能信贷业务
  2. 双色球全部开奖数据(json版)15年(2003~2015)开奖结果
  3. C语言 酒店管理系统
  4. 一首非常好听的歌moonlight shadow
  5. 部署LVS-DR群集【实验】
  6. mysql启动时报错Can't read from messagefile errmsg.sys
  7. 微信小程序 RTMP 音视频 通话 ffmpeg_WebRTC与微信小程序音视频互通方案设计与实现...
  8. 2021-3-6 信息总结
  9. 等离子体进展期刊和网站
  10. 如何用python打造个人云盘!