字典翻译用表:
范例:表名称:CODE_YEWU 业务平台字典表

简单的列举一个处理方式,思路上就是使用子查询的方式,如下:
落地数据的转换范例:对test表的ysdm字段进行转换,其中ysdm表示颜色代码,ysmc代表颜色名称。
参考语句如:
update table test a set (a.ysdm,a.ysmc)=(
select b.code,b.name
from code_yewu b
where b.root_key=’YSDM’
and b.old_code=a.ysdm
);
新数据的转换范例:
在对新增量数据进行转换时,采用插入数据时通过调用字典转换表(code_yewu)来完成字典的转换后,直接插入到数据库中。
参考语句如下:
insert into test(id,name,ysdm,ysmc)
select
sys_guid,
t.name
(select a.code,
a.name
from code_yewu a
where a.root_key=’YSDM’
and a.old_code=t.ysdm)
from old_test@dblink t;
篇章四:表结构的差异比较在不同的业务系统之间,有时候会遇到比对表结构差异的情况,这里举例一个方式,可以利用oracle的外连接来实现列举两方的结构差异。
举例一个方法:
整理的源库中的表结构excel;
整理的目标库的表结构excel;
创建A表的结构(为了放入源库结构数据)
create table A
(
t_name_A varchar2(500),
t_col varchar2(500),
t_type varchar2(500),
t_comment varchar2(500)
);
–源库中表名,字段名,类型,中文注释
创建B表的结构(为了放入目标库结构数据)
create table B
(
t_name_A varchar2(500),
t_name_B varchar2(500),
t_col varchar2(500),
t_type varchar2(500),
t_comment varchar2(500)
);
–源库中表名,目标库中表名,字段名,类型,中文注释
–这里为了做比较,所以把A表的源库表名也建在了B表中,这样有个更直观的比较,为后续做准备
然后使用SQL Loader或PL/SQL Developer等工具把excel数据导入到相应的表中去。
下面从A表和B表中获取到需要拼接及比较差异的字段,生成中间表A1、B1
create table A1 as
select t_name_A,t_col,t_type,t_comment,t_name_A"|t_col lm
from A;
create table B1 as
select t_name_A,t_name_B,t_col,t_type,t_comment,t_name_A||t_col lm
from B;
然后,根据A1、B1的内容,利用join形成差异统计表数据
create table bd
as
select
a.t_name_A,a.t_col,a.t_type,a.t_comment,a.lm,b.lm b_lm,b.t_name_A b_t_name_A,b.t_name_B,b.t_col b_t_col,b.t_type b_t_type,b.t_comment b_t_comment
from
(select t_name_A,t_col,t_type,t_comment,lm from A1) a
FULL join
(select t_name_A,t_name_F,t_col,t_type,t_comment,lm from B1) b
on a.lm=b.lm;
补充,可以利用all_tab_columns视图,查看出具体表下字段的结构,不过用此视图拼接的话,得到的number类型长度默认为number(22),得到的date类型默认为date(7),还需要手工二次修正。