oracle批量新增字段 数据赋值应用
2012-08-17 20:27
369 查看
/****************************/
--表名 个人客户扩展表
--1 C_ASSETF***OUR 资产投资偏好
--2 C_ACTINVESTF***OUR 实际风险偏好
--3 C_PRORAISEF***OUR 产品类型投资偏好
--4 C_ACTPRORAISEF***OUR 实际产品类型投资偏好
--5 C_PRODUCTF***OUR 旗下产品偏好
--6 C_ACTPRODUCTF***OUR 实际旗下产品偏好
--7 C_ACTHONESTY 实际客户忠诚度
--8 C_INVESTPOTENTIAL 客户可投资潜力
--9 C_PHONEFREQUENCY 电话接触频率偏好
--10 C_COMMUNICATEF***OUR 客户沟通意愿
--11 C_PRESENTF***OURTYPE 客户礼品偏好
--12 C_PRESENTF***OURDESC" 客户礼品偏好备注
--13 C_CHILDEDUCATION 子女年龄状况
--14 C_ACTCHILDEDUCATION 推断子女年龄状况
--15 C_CHILDERENSEX子女性别状况
/**************************/
declare
TYPE array_colname IS TABLE OF VARCHAR2 (30); --列名称
a_colname array_colname := array_colname ();
TYPE array_type IS TABLE OF VARCHAR2 (30); --列类型
a_type array_type := array_type ();
icount integer:=0;
begin
a_colname :=array_colname(
'C_ASSETF***OUR',
'C_ACTINVESTF***OUR',
'C_PRORAISEF***OUR',
'C_ACTPRORAISEF***OUR',
'C_PRODUCTF***OUR',
'C_ACTPRODUCTF***OUR',
'C_HONESTY',
'C_ACTHONESTY',
'C_INVESTPOTENTIAL',
'C_PHONEFREQUENCY',
'C_COMMUNICATEF***OUR',
'C_PRESENTF***OURTYPE',
'C_PRESENTF***OURDESC',
'C_CHILDEDUCATION',
'C_ACTCHILDEDUCATION',
'C_CHILDERENSEX'
);
a_type := array_type (
'char(1)',
'char(1)',
'char(1)',
'char(1)',
'char(1)',
'char(1)',
'char(1)',
'char(1)',
'char(1)',
'char(1)',
'char(1)',
'char(1)',
'varchar2(500)',
'char(1)',
'char(1)',
'char(1)'
);
for i in a_colname.first..a_colname.last loop
select count(1) into icount from user_tab_cols t where t.TABLE_NAME = upper('tpersonexinfo') and t.COLUMN_NAME = a_colname(i);
if icount = 0 then
execute immediate 'alter table tpersonexinfo add '||a_colname(i)||' '||a_type(i)||' ';
end if;
end loop;
end;
--表名 个人客户扩展表
--1 C_ASSETF***OUR 资产投资偏好
--2 C_ACTINVESTF***OUR 实际风险偏好
--3 C_PRORAISEF***OUR 产品类型投资偏好
--4 C_ACTPRORAISEF***OUR 实际产品类型投资偏好
--5 C_PRODUCTF***OUR 旗下产品偏好
--6 C_ACTPRODUCTF***OUR 实际旗下产品偏好
--7 C_ACTHONESTY 实际客户忠诚度
--8 C_INVESTPOTENTIAL 客户可投资潜力
--9 C_PHONEFREQUENCY 电话接触频率偏好
--10 C_COMMUNICATEF***OUR 客户沟通意愿
--11 C_PRESENTF***OURTYPE 客户礼品偏好
--12 C_PRESENTF***OURDESC" 客户礼品偏好备注
--13 C_CHILDEDUCATION 子女年龄状况
--14 C_ACTCHILDEDUCATION 推断子女年龄状况
--15 C_CHILDERENSEX子女性别状况
/**************************/
declare
TYPE array_colname IS TABLE OF VARCHAR2 (30); --列名称
a_colname array_colname := array_colname ();
TYPE array_type IS TABLE OF VARCHAR2 (30); --列类型
a_type array_type := array_type ();
icount integer:=0;
begin
a_colname :=array_colname(
'C_ASSETF***OUR',
'C_ACTINVESTF***OUR',
'C_PRORAISEF***OUR',
'C_ACTPRORAISEF***OUR',
'C_PRODUCTF***OUR',
'C_ACTPRODUCTF***OUR',
'C_HONESTY',
'C_ACTHONESTY',
'C_INVESTPOTENTIAL',
'C_PHONEFREQUENCY',
'C_COMMUNICATEF***OUR',
'C_PRESENTF***OURTYPE',
'C_PRESENTF***OURDESC',
'C_CHILDEDUCATION',
'C_ACTCHILDEDUCATION',
'C_CHILDERENSEX'
);
a_type := array_type (
'char(1)',
'char(1)',
'char(1)',
'char(1)',
'char(1)',
'char(1)',
'char(1)',
'char(1)',
'char(1)',
'char(1)',
'char(1)',
'char(1)',
'varchar2(500)',
'char(1)',
'char(1)',
'char(1)'
);
for i in a_colname.first..a_colname.last loop
select count(1) into icount from user_tab_cols t where t.TABLE_NAME = upper('tpersonexinfo') and t.COLUMN_NAME = a_colname(i);
if icount = 0 then
execute immediate 'alter table tpersonexinfo add '||a_colname(i)||' '||a_type(i)||' ';
end if;
end loop;
end;
相关文章推荐
- oracle对没有主键表的新增主键修改表数据操作(没有主键字段,则新增一个主键字段,然后赋值,然后再添加主键)
- oracle 在已有表新增列内批量加数据
- (小笔记)()Oracle 批量复制一个数据表的数据,修改部分字段后追加加入到数据表中
- ORACLE 批量插入 主键为自增序列 有几个字段数据从其他表导入的 有几个是固定的
- Oracle新增自增一的主键字段和赋值代码
- Oracle新增自增一的主键字段和赋值代码
- Oracle新增自增一的主键字段和赋值代码
- Oracle新增自增一的主键字段和赋值代码
- oracle新增字段时提示数据类型不正确
- oracle将一个表中字段的值赋值到另一个表中字段(批量)
- MyBatis+oracle 批量插入数据的一些问题
- Oracle 高速批量数据加载工具sql*loader使用说明
- 批量修改数据库字段类型(ORACLE)
- 使用MyBatis单条和批量插入数据到Oracle的表中
- rdbuf 在批量数据测试中的应用
- Kettle 生成的XML格式数据保存到Oracle 数据库的BLOB类型字段中
- GridView动态新增行 删除行 适合多数据批量修改保存 新增数据验证
- 对过万条数据的数据库字段内容批量替换程序
- ORACLE基础学习-RMAN应用--归档模式有备份,丢失数据文件恢复
- Oracle数据库导出大字段(CLOB)数据