опишите команду, работающую для одной таблицы, но не для другой таблицы

#sql #oracle #oracle-sqldeveloper

#sql #Oracle #oracle-sqldeveloper

Вопрос:

у меня есть 2 таблицы, обе из схемы A. я вошел в Oracle SQL Developer с пользователем A, который имеет доступ к схеме A. опишите таблицу1 -> работает нормально, опишите таблицу2 -> объект не существует, я вижу, что таблица2 является допустимой таблицей из dba_objects, с типом TABLE и владельцем как ‘A’, также я могу запустить запрос select к table2.

Хотя у меня есть другой механизм для проверки структуры таблицы в Oracle SQL Developer, было любопытно узнать, почему describe работает неправильно? Я что-то пропустил для проверки table2?

Комментарии:

1. Откройте панель журнала. Перейдите на страницу Инструкций… Вы увидите SQL, который мы используем для поиска вашего объекта

2. Проверьте свои привилегии таблицы, они могут отличаться. ВЫБЕРИТЕ * ИЗ all_tab_privs, ГДЕ table_name В (‘[table1]’, ‘[table2]’);

3. table2 возможно, было создано имя таблицы в двойных кавычках, что делает имя чувствительным к регистру. Вы можете проверить это с помощью select table_name from user_tables where lower(table_name) = 'table2' (или аналогичной), чтобы узнать, что Oracle думает о названии таблицы. Хотя … это также должно вызывать проблемы при выборе из таблицы — если вы не будете осторожны, когда делаете это , но не при использовании describe .