Среда - Oracle 9 & 10. У меня нет доступа уровня DBA.
Проблема состоит в том, чтобы убедиться, что определенный столбец существует в определенной таблице, в другой схеме.
Есть два случая, чтобы иметь дело с.
- Другая схема в том же экземпляре
- Схема в другом экземпляре с использованием db_link
Учитывая мою схему FRED и другую схему BARNEY, я попробовал что-то вроде этого
SELECT 1
FROM BARNEY.USER_TAB_COLS
WHERE TABLE_NAME = 'SOME_TABLE'
AND COLUMN_NAME = 'SOME_SPECIFIC_COLUMN'
Который дал [1]: (Ошибка): ORA-00942: таблица или представление не существует
Поработав некоторое время, я понял, что USER_TAB_COLS на самом деле не таблица. Это мнение. Я все время выбирал из таблиц, но не из представления.
Я пытался сделать то же самое с моей db_link, и был удивлен, когда данные вернулись. Ссылка db_link содержит встроенное имя_схемы / пароль, поэтому мне кажется разумным, что она сработала, поскольку она эффективно входит в другую схему, что должно сделать доступными представления.
Погуглив и вымотав мои глазные яблоки на горе доктора Оракула,
Я ищу кого-то, чтобы указать мне правильное направление или, по крайней мере, указать, что мне не хватает.
Какие методы доступны для получения метаданных, связанных с пользовательской таблицей, из схемы в одном и том же экземпляре для проверки существования определенного столбца?
Заранее спасибо.
Evil.
+ 1 для хороших ответов.
Спасибо.