参考这个程序包
处理步骤:
--1-创建转移中间表
drop table CalCodeUpgrade;
create table CalCodeUpgrade
(
table_name VARCHAR2(100) not null,
table_colname VARCHAR2(100) not null,
state CHAR(1),
PDMFileName VARCHAR2(1000),
trueTableName VARCHAR2(1000)
);
-- Create/Recreate primary, unique and foreign key constraints
alter table CalCodeUpgrade
add constraint PK_CalCodeUpgrade primary key (table_name,table_colname)
--2-将需要升级的表和字段 放到 转移中间表中
执行以下SQL
insert into CalCodeUpgrade
select table_name,column_name,'0','','' from user_tab_columns where lower(column_name)='operator'
-------------
delete from CalCodeUpgrade;
insert into CalCodeUpgrade
select table_name,column_name,'0','','' from user_tab_columns where lower(column_name) like '%operator%' and table_name = upper('LCIllCase');
select * from CalCodeUpgrade;
select * from LCIllCase;
select table_name,table_colname,state from CalCodeUpgrade where state='0' ;
--3-转移字段校验
查看CalCodeUpgrade表中需要转换的字段是否有误,如果有不需要转换的字段,将记录从数据库中删除.
--4-允许转换程序
转换程序会执行以下几步:
l 修改数据库的字段
l 修改PDM文件
l 生成Schema文件
在执行转换程序前,需要配置PDM原文件的路径,和转换后的路径.
修改com.sinosoft.trans.ColumnTypeTrans.java文件
修改以下两个字符串的值:
String mFilePath = "D:\program\lisnational\lisnational\Develop\lis-national\pdm\";
String mNewFilePath = "D:\temp\";
其中mFilePath为源PDM对应的目录.
mNewFilePath为转换后的路径.
修改程序中alterTableColums里面的修改SQL,现在是alter对应的字段为varchar2(10),你们按照你们自己的调整下。
修改完毕,执行ColumnTypeTrans.java的Main函数.
执行完毕后,数据库的字段自动修改完毕
在mNewFilePath目录可以找到转换后的PDM文件
在功能的class对应目录的src文件夹可以找到重新生成的Schema文件.
author_zhaisongfang
ด้้้้้็็็ด้้้้้็็็