Подтвердить что ты не робот

Использование SQL-запроса для определения наличия таблицы

Ребята могут найти другой способ определения таблицы, кроме ниже

  • select count(*) from <table> where rownum =1
  • select * from user_table where table_name=<table>

любезно сообщите мне, как лучше всего проверить, существует ли таблица с использованием oracle sql.

Спасибо за ответ, мое требование - проверить с первой даты текущего месяца, то есть 01/12/2010 с именем таблицы в формате suresh_20101201 существует в базе данных, если нет, то он должен проверить таблицу suresh_20101202 и на ней до suresh_20101231. возможно ли это сделать в запросе оракула sql.

4b9b3361

Ответ 1

Вы можете сделать это (в oracle, в mssql есть немного другое):

select count(*)
from all_objects
where object_type in ('TABLE','VIEW')
and object_name = 'your_table_name';

Ответ 2

В большинстве sql-серверов есть системный домен, в котором вы можете запросить существование таблицы. Тем не менее, это очень конкретная реализация. Например, в последних версиях MySql:

SELECT table_name FROM INFORMATION_SCHEMA.TABLES
  WHERE table_schema = 'db_name'
  AND table_name LIKE 'whatever'

Ответ 3

Вам нужно задать системный каталог сервера. Не знаете, какую базу данных вы имели в виду, но для SQL Server это было бы:

select * from sys.tables where name='your-table-name-'

Ответ 4

Используется в Oracle SQL Developer:

SELECT COUNT(*) FROM DUAL WHERE EXISTS (
    SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'TABLE' AND OWNER = 'myschema' AND OBJECT_NAME = 'your_table_name')

Это вернет либо 0, либо 1, если ваша таблица существует или нет в записях ALL_OBJECTS.

Ответ 5

Посмотрите в схеме, возможно, событие сможет использовать sys.object и проверить тип в то же время.....

Что-то вроде