Известно имя ограничения Oracle.
Как найти имя таблицы, для которой применяется это ограничение?
SELECT owner, table_name
FROM dba_constraints
WHERE constraint_name = <<your constraint name>>
предоставит вам имя таблицы. Если у вас нет доступа к представлению DBA_CONSTRAINTS
, ALL_CONSTRAINTS
или USER_CONSTRAINTS
также должны работать.
ALL_CONSTRAINTS
описывает определения ограничений для таблиц, доступных для текущего пользователя.
DBA_CONSTRAINTS
описывает все определения ограничений в базе данных.
USER_CONSTRAINTS
описывает определения ограничений в таблицах в текущей пользовательской схеме
Select CONSTRAINT_NAME,CONSTRAINT_TYPE ,TABLE_NAME ,STATUS from
USER_CONSTRAINTS;
SELECT constraint_name, constraint_type, column_name
from user_constraints natural join user_cons_columns
where table_name = "my_table_name";
предоставит вам то, что вам нужно
select table_name from user_constraints where constraint_name = 'xxx';
должен работать для любого пользователя. Вы уверены, что в вашем запросе нет опечатки? Чтоselect owner, object_name from all_objects where object_name = 'USER_CONSTRAINTS'
возвращает для вас?