Oracle 创建和视图结构一样的表

在某个项目中,甲方提供了若干视图查询源数据,为了少些扯皮事件,于是决定将所有源数据进行备份保存,于是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 为原视图名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值