实验一:表到表的数据转换
实验目的:
将SQLServer数据库中user表的数据传输到Oracle数据库中TABLE_USER表中,当发现重复数据时,先删除旧数据,再插入新数据。传输过程中无任何数据转换。
源字段 |
目标字段 |
user.id |
TABLE_USER.ID |
user.name |
TABLE_USER.NAME |
实验数据:
源:SQLServer数据库user表,共有3条数据,如下图:
目标:Oracle数据库TABLE_USER表,无数据,如下图:
预期结果:
源表中的3条数据逐一添加到目标表中。
实验过程:
1、在“文件”菜单中,选择“转换”,新建一个转换方案
2、在“输入”目录中,拖拽添加一个“表输入”对象
3、双击新建的对象,编辑该对象
A、输入合理、易懂的步骤名称
B、点击数据库连接右边的“新建”按钮,新建一个数据库连接
4、新建一个SQLServer数据库连接
A、连接类型选择:MS SQL Server
B、依次填写主机名、数据库名、实例名、端口号、登录用户名、登录密码
C、点击“Test”按钮,进行连接测试,如连接成功,则弹出成功提示框
连接成功,弹出下面提示框:
5、点击“获取SQL查询语句”按钮,选择源表
6、在弹出的表选择画面上,选择源表,这里选择user表,点击“OK”按钮
7、可以看到相应的查询SQL文,点击“预览”按钮,可以查看数据
8、数据显示窗口
9、点击“确定”按钮,完成输入对象的配置
10、从“输出”目录中,拖拽添加一个“删除”对象,将鼠标放置在输入对象上,按住“Shift”键,同时按住鼠标左键,拉动箭头,建立输入源到删除目标的指向关系。
* 建立本步骤的目的,是先删除具有相同主键的旧数据,防止传输数据时,出现主键重复错误。
11、双击“删除”对象,编辑该对象
A、输入合理、易懂的步骤名称
B、点击“新建”按钮,建立新的数据库连接(因为目标表是Oracle类型的,所以需要新建连接。如果目标表和输入表属于同一个数据库连接,可以直接从“数据库连接”下拉菜单中选择。)
12、建立新的Oracle数据库连接
A、输入连接名
B、依次输入主机名、数据库名、端口号、登录用户名、登录密码
C、点击“Test”按钮,测试连接是否成功
D、点击“OK”按钮
连接成功的情况下,弹出以下提示框:
13、点击“目标表”右侧的“浏览”按钮,选择待删除记录的目标表
14、在表选择窗口中,选择待删除记录的表,这里选择“TABLE_USER”表,点击“OK”按钮
15、设置“查询值所需的关键字”,然后点击“确定”按钮
A、表字段:ID(目标表主键)
B、比较符:=
C、流里的字段1:id(源表主键)
这里的含义是:当目标表字段“ID”出现与源表中字段“id”相等的记录时,删除目标表中的该条记录,防止数据插入时,出现主键重复错误。
16、复制并粘贴之前建立的输入对象,如图:
17、从“输出”目录中,拖拽添加一个“表输出”对象,将鼠标放置在输入对象上,按住“Shift”键,同时按住鼠标左键,拉动箭头,建立输入源到输出目标的指向关系。如图:
18、双击“表输出”对象,编辑该对象
A、输入合理、易懂的步骤名称
B、数据库连接选择“Oracle”
C、目标表选择“TABLE_USER”
D、选中“Specify database fields”
E、切换标签到“Database fields”
F、点击“Enter field mapping”按钮
19、选择源表到目标表的映射关系,然后点击“Add”按钮
建立完映射关系后的结果,如图所示:
20、点击“确定”按钮
21、至此,一个完整的表到表数据传输步骤就建立完毕了。
22、保存该过程为一个*.ktr文件(一个符合xml标准的文件),然后执行该过程,如图,点击上方的“绿色三角”
点击“启动”按钮
23、执行后结果:
成功执行的日志:
可以看到,目标表中新添加了3条数据。
实验二:视图到表的数据转换
实验目的:
将SQLServer数据库中userview视图的数据传输到Oracle数据库中TABLE_USER表中,传输过程中没有数据转换。
源字段 |
目标字段 |
userview.id |
TABLE_USER.ID |
userview.name |
TABLE_USER.NAME |
实验数据:
源:SQLServer数据库userview视图,共有3条数据,如下图:
目标:Oracle数据库TABLE_USER表,无任何数据,如下图:
预期结果:
TABLE_USER表中新添加3条记录。
实验过程:
1、在“文件”菜单中,选择“转换”,新建一个转换方案
2、在“输入”目录中,拖拽添加一个“表输入”对象
3、双击新建的对象,编辑该对象
A、输入合理、易懂的步骤名称
B、点击数据库连接右边的“新建”按钮,新建一个数据库连接
4、新建一个SQLServer数据库连接
A、连接类型选择:MS SQL Server
B、依次填写主机名、数据库名、实例名、端口号、登录用户名、登录密码
C、点击“Test”按钮,进行连接测试,如连接成功,则弹出成功提示框
连接成功,弹出下面提示框:
5、点击“获取SQL查询语句”按钮,选择源视图
6、在弹出的表选择画面上,选择源视图,这里选择userview视图,点击“OK”按钮
7、可以看到相应的查询SQL文,点击“预览”按钮,可以查看数据
8、数据显示窗口
9、点击“确定”按钮,完成输入对象的配置
10、从“输出”目录中,拖拽添加一个“删除”对象,将鼠标放置在输入对象上,按住“Shift”键,同时按住鼠标左键,拉动箭头,建立输入源到删除目标的指向关系。
* 建立本步骤的目的,是先删除具有相同主键的旧数据,防止传输数据时,出现主键重复错误。
11、双击 “删除”对象,编辑该对象
A、输入合理、易懂的步骤名称
B、点击“新建”按钮,建立新的数据库连接(因为目标表是Oracle类型的,所以需要新建连接。如果目标表和输入表属于同一个数据库连接,可以直接从“数据库连接”下拉菜单中选择。)
12、建立新的Oracle数据库连接
A、输入连接名
B、依次输入主机名、数据库名、端口号、登录用户名、登录密码
C、点击“Test”按钮,测试连接是否成功
D、点击“OK”按钮
连接成功的情况下,弹出以下提示框:
13、点击“目标表”右侧的“浏览”按钮,选择待删除记录的目标表
14、在表选择窗口中,选择待删除记录的表,这里选择“TABLE_USER”表,点击“OK”按钮
15、设置“查询值所需的关键字”,然后点击“确定”按钮
A、表字段:ID(目标表主键)
B、比较符:=
C、流里的字段1:id(源表主键)
这里的含义是:当目标表字段“ID”出现与源表中字段“id”相等的记录时,删除目标表中的该条记录,防止数据插入时,出现主键重复错误。
16、复制并粘贴之前建立的输入对象,如图:
17、从“输出”目录中,拖拽添加一个“表输出”对象,将鼠标放置在输入对象上,按住“Shift”键,同时按住鼠标左键,拉动箭头,建立输入源到输出目标的指向关系。如图:
18、双击“表输出”对象,编辑该对象
A、输入合理、易懂的步骤名称
B、数据库连接选择“Oracle”
C、目标表选择“TABLE_USER”
D、选中“Specify database fields”
E、切换标签到“Database fields”
F、点击“Enter field mapping”按钮
19、选择源表到目标表的映射关系,然后点击“Add”按钮
建立完映射关系后的结果,如图所示:
20、点击“确定”按钮
21、至此,一个完整的表到表数据传输步骤就建立完毕了。
22、保存该过程为一个*.ktr文件(一个符合xml标准的文件),然后执行该过程,如图,点击上方的“绿色三角”
点击“启动”按钮
23、执行后结果:
可以看到,该表中新添加了3条数据。
实验三:值映射
实验目的:
将SQLServer数据库中userview视图的数据分别传输到Oracle数据库中TABLE_USER表和TABLE_USERINFO中,传输过程中有数据转换。
源字段 |
目标字段 |
userview.id |
TABLE_USER.ID、TABLE_USERINFO.ID |
userview.name |
TABLE_USER.NAME |
userview.age |
TABLE_USERINFO.ARG |
userview.birthday |
TABLE_USERINFO.BIRTHDAY |
userview.card |
TABLE_USERINFO.CARD |
实验数据:
源:SQLServer数据库userview视图,共有3条数据,其中姓名为“张三”的记录,名字改成了“张三_新”,如下图:
目标:Oracle数据库TABLE_USER表,共有3条通过实验二添加的数据,3条记录的名字分别为张三、李四、王五,如下图:
目标:Oracle数据库TABLE_USERINFO表,无任何数据,如下图:
预期结果:
TABLE_USER表中仍然为3条记录,其中,姓名为“张三”的记录,应更新为“张三_新”;
TABLE_USERINFO表中新添加3条记录。
实验过程:
1、在“文件”菜单中,选择“转换”,新建一个转换方案
2、在“输入”目录中,拖拽添加一个“表输入”对象
3、双击新建的对象,编辑该对象
A、输入合理、易懂的步骤名称
B、点击数据库连接右边的“新建”按钮,新建一个数据库连接
4、新建一个SQLServer数据库连接
A、连接类型选择:MS SQL Server
B、依次填写主机名、数据库名、实例名、端口号、登录用户名、登录密码
C、点击“Test”按钮,进行连接测试,如连接成功,则弹出成功提示框
连接成功,弹出下面提示框:
5、点击“获取SQL查询语句”按钮,选择源视图
6、在弹出的表选择画面上,选择源视图,这里选择userview视图,点击“OK”按钮
7、可以看到相应的查询SQL文,点击“预览”按钮,可以查看数据
8、数据显示窗口
9、点击“确定”按钮,完成输入对象的配置
10、从“输出”目录中,拖拽添加两个“删除”对象(因为本次实验的目标表为两个),将鼠标放置在输入对象上,按住“Shift”键,同时按住鼠标左键,拉动箭头,分别建立输入源到两个删除目标的指向关系。
* 建立本步骤的目的,是先删除具有相同主键的旧数据,防止传输数据时,出现主键重复错误。
11、双击第一个“删除”对象,编辑该对象,建立针对TABLE_USER表的删除步骤
A、输入合理、易懂的步骤名称
B、点击“新建”按钮,建立新的数据库连接(因为目标表是Oracle类型的,所以需要新建连接。如果目标表和输入表属于同一个数据库连接,可以直接从“数据库连接”下拉菜单中选择。)
12、建立新的Oracle数据库连接
A、输入连接名
B、依次输入主机名、数据库名、端口号、登录用户名、登录密码
C、点击“Test”按钮,测试连接是否成功
D、点击“OK”按钮
连接成功的情况下,弹出以下提示框:
13、点击“目标表”右侧的“浏览”按钮,选择待删除记录的目标表
14、在表选择窗口中,选择待删除记录的表,这里选择“TABLE_USER”表,点击“OK”按钮
15、设置“查询值所需的关键字”,然后点击“确定”按钮
A、表字段:ID(目标表主键)
B、比较符:=
C、流里的字段1:id(源表主键)
这里的含义是:当目标表字段“ID”出现与源表中字段“id”相等的记录时,删除目标表中的该条记录,防止数据插入时,出现主键重复错误。
16、双击第二个“删除”对象,编辑该对象,建立针对TABLE_USERINFO表的删除步骤
A、输入合理、易懂的步骤名称
B、数据库连接选择“Oracle”
C、点击“目标表”右侧的“浏览”按钮,选择待删除记录的目标表
17、在表选择窗口中,选择待删除记录的表,这里选择“TABLE_USERINFO”表,点击“OK”按钮
18、设置“查询值所需的关键字”,然后点击“确定”按钮
A、表字段:ID(目标表主键)
B、比较符:=
C、流里的字段1:id(源表主键)
这里的含义是:当目标表字段“ID”出现与源表中字段“id”相等的记录时,删除目标表中的该条记录,防止数据插入时,出现主键重复错误。
19、复制并粘贴之前建立的输入对象,如图:
20、从“输出”目录中,拖拽添加一个“表输出”对象,将鼠标放置在输入对象上,按住“Shift”键,同时按住鼠标左键,拉动箭头,建立输入源到输出目标的指向关系。这一步,是建立源视图到目标表TABLE_USER的数据传输过程,没有数据转换过程,与实验一类似。如图:
21、双击“表输出”对象,编辑该对象
A、输入合理、易懂的步骤名称
B、数据库连接选择“Oracle”
C、目标表选择“TABLE_USER”
D、选中“Specify database fields”
E、切换标签到“Database fields”
F、点击“Enter field mapping”按钮
22、选择源表到目标表的映射关系,然后点击“Add”按钮
建立完映射关系后的结果,如图所示:
23、点击“确定”按钮
24、至此,源视图到目标表TABLE_USER的数据传输过程就建立完毕了
25、从“转换”目录中,拖拽添加一个“值映射”对象,并建立输入对象与值映射对象的指向关系。
* 在本次数据传输中,涉及到用户的证件类型字段,源视图中存放的值是:身份证、护照,而目标表中应存放该值相应的代码:身份证=3、护照=4,因此,此处需要用到值映射对象,处理值的映射。
26、双击“值映射”对象,并编辑该对象,点击“确定”按钮
A、输入合理、易懂的名称
B、使用的字段名:选择需要做值转换的字段名(这里选择card)
C、目标字段名:不同于原有字段的新字段名,保存转换后的值(这里输入newcard)
D、字段值列表:分别填写源值和目标值
27、从“输出”目录中,拖拽添加“表输出”对象,同时从值映射对象中引出箭头指向表输出对象。该对象用于建立源视图到表TABLE_USERINFO的数据传递。
28、双击“表输出”对象,编辑该对象
A、输入合理、易懂的步骤名称
B、数据库连接选择“Oracle”
C、目标表选择“TABLE_USERINFO”
D、选中“Specify database fields”
E、切换标签到“Database fields”
F、点击“Enter field mapping”按钮
29、选择源表到目标表的映射关系,然后点击“Add”按钮
建立完映射关系后的结果,如图所示:
这里可以看到,CARD字段对应的源字段是newcard,而不是card
30、点击“确定”按钮
31、至此,一个完整的视图到多表,且带有数据转换过程的步骤就建立完毕了。
通过下图我们可以看到:该过程的原理是,先将TABLE_USER表和TABLE_USERINFO表的旧数据删除,再将源视图中的数据同步到两个目标表中。
32、保存该过程为一个*.ktr文件(一个符合xml标准的文件),然后执行该过程,如图,点击上方的“绿色三角”
点击“启动”按钮
23、执行后结果:
A、执行日志:
B、TABLE_USER表记录(“张三“更新成了“张三_新”):
C、TABLE_USERINFO表记录(新增加了3条记录):
Pdi——ce——4.0.1