在某个项目中,甲方提供了若干视图查询源数据,为了少些扯皮事件,于是决定将所有源数据进行备份保存,于是lz 就写了这两个sql,来自动生成 创建表和 插入数据的脚本
1、根据视图名称,自动生成 创建表的 脚本
select 'create table '||result.table_name||'_TB ('|| result.colu || ' )tablespace TBS_DIAOCHA_DATA pctfree 10 initrans 1 maxtrans 255 storage( initial 384 next 1 minextents 1 maxextents unlimited);'
from (select table_name, WMSYS.WM_CONCAT('"'||column_name||'" '||data_type||'('||data_length||')') as colu from user_tab_cols where table_name='Z_YX_CZ_VEH' group by table_name) result
2、根据视图名称,自动生成 将当前视图数据插入新建成的表的 脚本
select 'insert into '||result.table_name||'_TB ('|| result.colu||')select '||result.colu|| ' from tocc.'||result.table_name
from (select table_name, WMSYS.WM_CONCAT('"'||column_name||'"') as colu from user_tab_cols where table_name='Z_YX_CZ_VEH' group by table_name)result
其中 :
tocc 为数据库用户名
Z_YX_CZ_VEH 为原视图名称