如何批量删除oracle数据库中表

如何批量删除oracle数据库中表,第1张

先写一个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语句批量删除多个表的相同字段等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10181964.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存