先写一个sql文件,比如叫del_tablessql,在sql文件里写DROP
TABLE的命令(DROP的内容根据你的需要,可以是单独的多个DROP
TABLE指令,也可能是从USER_TABLES里查询出若干表名),然后bat文件里写
sqlplus
用户名/密码@库名
@del_tablessql
如果sql文件的内容需要帮助写,那请你给出你要删除的表名,或者表名的规律,比如TEMP为开头的所有表。
在SQL中,能快速删除数据表中所有记录,但保留数据表结构的语句是Truncate。
使用Truncate删除所有行,该语句总是比不带条件的DELETE语句要快,因为DELETE语句要记录对每行的删除 *** 作,而Truncate 语句只记录整个数据页的释放。Truncate语句立即释放由该表的数据和索引占用的所有空间,所有索引的分发页也将释放。
与DELETE语句相同,使用Truncate清空的表的定义,同其索引和其它相关的对象一起仍保留在数据库中。必须使用DROP TABLE语句才能除去表的定义。
SQL是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口,这使它具有极大的灵活性和强大的功能。
不知道您用的是什么数据库了。
不过做法肯定是一样,用两个游标,第一个游标从数据字典中检索出所有的表,第二个游标从每个表中检索所有的字段,然后遇到有要和你删除名称相同的字段的时候,执行alter
table
tablename
drop
column
columnname的 *** 作。
不过这个执行不能直接这么执行,而是设置一个字符串的变量,例如SQLSERVER,需要@delsql
=
'alter
table
'
+
@tablename
+
'
drop
column
'
+
@columnname
exec(@delsql)
而oracle也一样delsql
=
'alter
table
'
+
tablename
+
'
drop
column
'
+
columnname;
execute
immediate
delsql;
要使用这样的写法。
不可能使用一个SQL直接删除所有的。
以上就是关于如何批量删除oracle数据库中表全部的内容,包括:如何批量删除oracle数据库中表、在SQL中,能快速删除数据表中所有记录,但保留数据表结构的语句是什么、怎么使用SQL语句批量删除多个表的相同字段等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)