Использование SQL-запроса для определения существования таблицы - PullRequest
13 голосов
/ 08 декабря 2010

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

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

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

Спасибо за ответ, мое требование - проверить с первой даты текущего месяца, т.е. 12.01.2010, с именем таблицы в формате suresh_20101201существует в базе данных, если нет, то она должна проверить таблицу suresh_20101202 и затем до suresh_20101231.это можно сделать в Oracle SQL запрос?

Ответы [ 6 ]

26 голосов
/ 08 декабря 2010

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

select count(*)
from all_objects
where object_type in ('TABLE','VIEW')
and object_name = 'your_table_name';
1 голос
/ 12 июля 2018

Приведенный ниже запрос может быть запущен в Oracle для проверки наличия любой таблицы в БД:

SELECT count(*) count FROM dba_tables where table_name = 'TABLE_NAME'

Приведенный выше запрос вернет счетчик 1, если в базе данных присутствует таблица 'TABLE_NAME'

1 голос
/ 16 ноября 2016

Использовал это в 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.

1 голос
/ 08 декабря 2010

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

select * from sys.tables where name='your-table-name-'
1 голос
/ 08 декабря 2010

На большинстве серверов sql есть системный домен, где вы можете запросить существование таблицы.Это сильно зависит от реализации.Например, в последних версиях MySql :

SELECT table_name FROM INFORMATION_SCHEMA.TABLES
  WHERE table_schema = 'db_name'
  AND table_name LIKE 'whatever'
0 голосов
/ 08 декабря 2010

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

Что-то вроде

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...