У меня есть следующая таблица в оракуле:
Parent(arg1, arg2)
, и я хочу транзитивное закрытие родителя отношения.То есть мне нужна следующая таблица
Ancestor(arg1, arg2)
Как это возможно в Oracle?
Я делаю следующее:
WITH Ancestor(arg1, arg2) AS (
SELECT p.arg1, p.arg2 from parent p
UNION
SELECT p.arg1 , a.arg2 from parent p, Ancestor a
WHERE p.arg2 = a.arg1
)
SELECT DISTINCT * FROM Ancestor;
Я получаю ошибку
*Cause: column aliasing in WITH clause is not supported yet
*Action: specify aliasing in defintion subquery and retry
Error at Line: 1 Column: 20
Как я могу решить эту проблему без псевдонимов столбцов?