ORA-01436 при попытке экспортировать результат CONNECT BY PRIOR

У меня есть таблица в Oracle, которая имеет два столбца: CODIGO_DA_CONTA_PAI а также CODIGO_DA_CONTA_FILHO (в основном означает родитель и ребенок).

Для родительского CT-0000000000, "Дети" и "Дети детей", необходимо обновить еще один столбец (но пока я только пытаюсь выбрать иерархию).

Если у ребенка есть один или несколько детей, он также присутствует в столбце "Родитель".

Когда я запускаю этот запрос, показанный ниже, он показывает мне результаты, но когда я пытаюсь экспортировать, заключать его в предложение 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

РЕЗУЛЬТАТ

1 ответ

Не видя реальных данных, трудно сказать, что вызывает цикл. Похоже, вы начинаете с корня (детей, непосредственно связанных с корневым рядом) и работы с детьми. В этом случае условие 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'?

Другие вопросы по тегам