为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:OS7
【CPU】: 飞腾
【问题描述】*: 通过jdbc连接执行插入数据报错如下信息,管理工具可以正常执行
create table employee(
emp_id number(18),
lead_id number(18),
emp_name varchar2(200),
salary number(10,2),
dept_no varchar2(8)
);
insert into employee values(‘1’,0,‘king’,‘1000000.00’,‘001’);
insert into employee values(‘2’,1,‘jack’,‘50500.00’,‘002’);
insert into employee values(‘3’,1,‘arise’,‘60000.00’,‘003’);
insert into employee values(‘4’,2,‘scott’,‘30000.00’,‘002’);
insert into employee values(‘5’,2,‘tiger’,‘25000.00’,‘002’);
insert into employee values(‘6’,3,‘wudde’,‘23000.00’,‘003’);
insert into employee values(‘7’,3,‘joker’,‘21000.00’,‘003’);
commit;
select emp_id,lead_id,emp_name,prior emp_name as lead_name,salary
from employee
start with lead_id=0
connect by prior emp_id = lead_id;
insert into employee values(‘3’,7,‘joker_cycle’,‘21000.00’,‘003’);
commit;
– 插入一条数据,与另一条emp_id=7的数据组成循环行
select emp_id,emp_name,lead_id,salary,connect_by_iscycle as cycle
from employee
start with lead_id=0
connect by prior emp_id = lead_id;
– 执行报错:用户数据中的CONNECT BY循环
select emp_id,emp_name,lead_id,salary,connect_by_iscycle as cycle
from employee
start with lead_id=0
connect by nocycle prior emp_id = lead_id;
–执行成功

存在死循环,connect by 和 prior 中间加上 nocycle试试: connect by nocycle prior