Я пытаюсь сгенерировать ddl для ограничений. Фрагмент из запроса:
SELECT DBMS_METADATA.get_ddl ('CONSTRAINT', constraint_name, owner)
FROM all_constraints
WHERE owner = UPPER('THEOWNER')
AND constraint_type IN ('U', 'P', 'R');
, но получаю это:
ORA-31603: object "EMPLOYEE_DEPNUM_FK" of type CONSTRAINT not found in schema "THEOWNER"
at "SYS.DBMS_METADATA", line 6069
ORA-06512: at "SYS.DBMS_METADATA", line 8666
ORA-06512: at line 1
Запуск сценария от имени системного пользователя. Также пробовал скрипт как THEOWNER
:
SELECT DBMS_METADATA.get_ddl ('CONSTRAINT', 'EMPLOYEE_DEPNUM_FK') from dual;
Та же ошибка. Я могу сгенерировать ddl для таблиц, индексов, представлений и т. Д., Но для некоторых ограничений.
Следующий запрос показывает THEOWNER
как владельца ограничения:
SELECT owner FROM all_constraints WHERE CONSTRAINT_NAME='EMPLOYEE_DEPNUM_FK';
Я могуКажется, нигде не найти исходный код для DBMS_METADATA.GET_DDL
. Есть предложения?