在项目工作中,目前遇到一个情况要给一个用户下大量表添加同一个新字段,对于新人来说比较头疼,如果进行复制粘贴,面对大量表的时候会有很大的工作量。
因此可以采用for 游标的形势来进行语句的批量执行。
首先可以在sql窗口进行如下代码运行(created_by 为一个新的字符字段)
select ' ALTER TABLE ' || OBJECT_NAME ||' ADD (CREATED_BY VARCHAR2(32));'
from user_objects t
where OBJECT_TYPE in ('TABLE')
尝试运行得到如下结果:
同样也可以换一个数据字典user_tables,省去过滤条件 :
select ' ALTER TABLE ' || TABLE_NAME ||
' ADD (CREATED_BY VARCHAR2(32));'
from user_tables t
得到如下结果:
两者之后可以把运行结果封装到临时表,之后进入plsql中编写存储过程,将for游标遍历的表中内容传输到动态sql中就可以进行一个批量的添加字段了。
以上仅为大家提供一个思路,如果有什么优化或者其他方案,也欢迎大家讨论。
版权声明:本文为Crozz_Dragon原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。