ORA-01436尝试导出CONNECT BY PRIOR结果时

时间:2014-01-08 19:01:38

标签: sql oracle connect-by

我在Oracle中有一个包含两列的表:CODIGO_DA_CONTA_PAICODIGO_DA_CONTA_FILHO(基本上是指父和子)。

对于父级CT-0000000000,儿童和儿童,需要更新另一列(但目前我只是尝试选择层次结构)。

当Child有一个或多个Child时,它也出现在Parent列中。

当我运行下面显示的这个查询时,它会显示结果,但是当我尝试导出时,用SELECT子句括起来,或者向下滚动结果集时,错误消息编号为01436。

从我读到的内容来看,它似乎正在生成一个永远不会结束的结果集。

如何使其正常工作?我的代码是对的,还是我错过了什么?

 SELECT
     level AS nivel,
     codigo_da_conta_pai,
     codigo_da_conta_filho,
     estrutura_ativa_filho
   FROM conta c
  START WITH c.codigo_da_conta_pai = 'CT-0000000000'
CONNECT BY PRIOR c.codigo_da_conta_filho = c.codigo_da_conta_pai

RESULT SET

1 个答案:

答案 0 :(得分:0)

在没有看到真实数据的情况下,很难分辨出导致循环的原因。你似乎从一个根(一个直接链接到根行的孩子)和对孩子的工作开始。在这种情况下,CONNECT BY条件应该是:

CONNECT BY PRIOR C.CODIGO_DA_CONTA_PAI = C.CODIGO_DA_CONTA_FILHO

或者可能是你有CODIGO_DA_CONTA_PAI和CODIGO_DA_CONTA_FILHO等于'CT-0000000000'的行?