#oracle
#Oracle
Вопрос:
в базе данных oracle на сервере linux;
desc table_x; =gt; getting data select * from table_x; =gt; getting data SELECT table_name from all_tables; =gt; it is not in the list
Как я могу сделать так, чтобы эта таблица появилась в списке?
Спасибо.
Комментарии:
1. Предложения Литтлфута являются вероятными виновниками, но мне также интересно, можете ли вы просто искать в списке «table_x» в нижнем регистре, чтобы соответствовать тому, как вы его запрашиваете, и он находится в списке как «TABLE_X» — что нормально для идентификатора без кавычек.
2. Проверять
ALL_OBJECTS
Ответ №1:
Похоже, что это не таблица, в которой содержится all_tables
. Тогда в чем же дело?
Может быть синонимом, так что попробуйте
select * from all_synonyms where synonym_name = 'TABLE_X';
Или, вид:
select * From all_views where view_name = 'TABLE_X';
Комментарии:
1. спасибо за ответ, но не решил мою проблему.
2. Я предполагаю, что проблема в том, что список таблицы каким-то образом заблокирован. Если это проблема, как мне ее преодолеть?
3. Не должно быть заблокировано . Попробуйте запросить ALL_OBJECTS и посмотреть, что это на самом деле.
4. SQLgt; выберите * из всех_объектов, где имя объекта, например » %table_x%»; строки не выбраны SQLgt;gt; SQLgt;gt;gt; desc table_x; Имя Null? Тип ———————— НОМЕР col1 НОМЕР col2 НОМЕР col3 НЕ НУЛЕВОЙ НОМЕР col4 НОМЕР col5 НЕ НУЛЕВОЙ НОМЕР
5. Попробуйте
where upper(object_name) like '%TABLE_X%'
, потому что имена объектов обычно хранятся в верхнем регистре.