有没有其他方法可以确定除下面的
以外的表格select count(*) from <table> where rownum =1
select * from user_table where table_name=<table>
请告诉我使用oracle sql检查表是否存在的最佳方法。
感谢您的回答,我的要求是从当月的第一个日期(即2010年12月1日)检查数据库中是否存在suresh_20101201格式的表格名称,如果没有则应检查表格suresh_20101202及其上直到suresh_20101231。是否可以在oracle sql查询中执行。
答案 0 :(得分:26)
你可以这样做(在oracle中,在mssql中有一点不同):
select count(*)
from all_objects
where object_type in ('TABLE','VIEW')
and object_name = 'your_table_name';
答案 1 :(得分:1)
在大多数sql服务器中都有一个系统域,您可以在其中查询表的存在。虽然它具有高度实现性。例如,在MySql的最新版本中:
SELECT table_name FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = 'db_name'
AND table_name LIKE 'whatever'
答案 2 :(得分:1)
您需要询问服务器的系统目录。不确定你的意思是什么数据库,但对于SQL Server,它将是:
select * from sys.tables where name='your-table-name-'
答案 3 :(得分:1)
在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
。
答案 4 :(得分:1)
可以向Oracle触发以下查询,以检查数据库中是否存在任何表:
SELECT count(*) count FROM dba_tables where table_name = 'TABLE_NAME'
如果数据库中存在表“ TABLE_NAME”,则上述查询将返回计数1。
答案 5 :(得分:0)
查看架构,可能事件能够使用sys.objects并同时检查类型.....
像
这样的东西