В настоящее время я пытаюсь создать таблицу хранилища (или найти альтернативное решение), чтобы позволить мне легко идентифицировать "семейные" отношения между некоторыми элементами.
Это в основном древовидная структура с несколькими элементами, связанными друг с другом в базе данных Oracle SQL.
Каждый элемент имеет хотя бы одного родителя, и все они идентифицируются кодом.Родительский код одного элемента легко доступен в таблице.
Я пытался скопировать столбец «код» в пустую таблицу репозитория, используя следующий код:
UPDATE TARGET_TABLE
SET TARGET_TABLE.CODE1 =
(SELECT CODE1 FROM SOURCE_TABLE)
INSERT INTO TARGET_TABLE (CODE1)
SELECT CODE1 FROM SOURCE_TABLE;
У меня нет ошибок при выполнении этого запроса, но в целевой таблице ничего не происходит .. "0 строка обновлена"
Я пытался сделать это без создания новой таблицы, и я могучтобы найти код с помощью следующих команд:
SELECT DAD_CODE1 FROM SOURCE_TABLE where 'CODE=1000' IN CODE; -- give 0900 as result, being the dad of 1000
SELECT DAD_CODE1 FROM SOURCE_TABLE where 'CODE=0900' IN CODE; -- give null if root
и т. д. до получения значения NULL, когда я достигну корня.
или наоборот:
SELECT CODE FROM SOURCE_TABLE WHERE '00001' IN DAD_CODE1 -- give 0100, among other children codes of this dad element
SELECT CODE FROM SOURCE_TABLE WHERE '00100' IN DAD_CODE1 -- give null if no children
и это работает, но я не могу построить это "рекурсивно".Цель состоит в том, чтобы легко найти отношения для другой обработки данных.