ORACLE PL / SQL Как создать ParentID в процедуре - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть процедура, которая загружает данные из таблицы и имеет отношения «дочерний» и «родительский» (DEPARTMENT_CODE и PARENT_DEPARTMENT_CODE). Таким образом, у меня также есть два столбца с идентификаторами этих столбцов, столбец «ID_DEPARTMENT» автоматически увеличивается с Oracle создать таблицу, но «PARENTID_DEPARTMENT» должен заполнить «ID_DEPARTMENT» в соответствии с двумя столбцами, упомянутыми выше. Для полей, которые не имеют родителей, вы должны оставить это поле пустым.

То есть, как это сделать в процедуре «Вставить в» в Oracle?

Что У меня есть:

enter image description here

Что мне нужно:

enter image description here

Спасибо!

1 Ответ

1 голос
/ 30 апреля 2020

Я предположил, что ваша таблица называется YourTable

UPDATE YourTable t1 
SET t1.PARENTID_DEPARTMENT = (SELECT t2.ID_DEPARTMENT
                              FROM YourTable t2 
                              WHERE t1.PARENT_DEPARTMENT_CODE = t2.DEPARTMENT_CODE)
WHERE t1.PARENT_DEPARTMENT_CODE <> ''
AND EXISTS (SELECT t2.ID_DEPARTMENT
            FROM YourTable t2 
            WHERE t1.PARENT_DEPARTMENT_CODE = t2.DEPARTMENT_CODE)
...