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'?