1.背景
数据迁移中大字段一直是个比较头疼的问题,一旦大字段中值大于32K的话就无法用sql语句来实现插入和更新。通用的解决办法一般有两种:存储过程和JDBC。下面主要总结下基于AEAI ESB用JDBC对大字段的解决方案。
2.实现思路
-
从本地读取图片/文件,插入oracle数据库
-
从oracle中读取数据插入SQLServer
-
从SQLServer中读取数据写入本地
-
JDBC中采用流机制对 BLOB/CLOB 进行读写操作
-
验证写入本地的图片/文件与源数据是否一致
3.功能设计
JDBC大字段处理分为三个流程:
![cldzd1.png wKioL1TAbqrjNIcuAABE6-_gw6Y468.jpg](https://i-blog.csdnimg.cn/blog_migrate/1716299e0d0194b297e1bcf2ce3e3191.jpeg)
3.1.读取本地文件/图片
3.1.1.流程图
![cldzd2.png wKiom1TAbeOydD5dAABX92gmVT4094.jpg](https://i-blog.csdnimg.cn/blog_migrate/269329c33706985aad4205627cf530d4.jpeg)
3.1.2.组件说明
读取插入Oracle数据库:读取本地文件/图片插入Oracle数据库。
主要代码如下:
![cldzd3.jpg wKioL1TAbsmzF0QFAAMMXoivwF0328.jpg](https://i-blog.csdnimg.cn/blog_migrate/fcdf781de2a0cf54ce3a2fc5ec6ebdeb.jpeg)
3.2. 从Oracle查询插入SQLServer
3.2.1.流程图
![cldzd4.png wKiom1TAbgSAlJARAABzksLfaPk451.jpg](https://i-blog.csdnimg.cn/blog_migrate/fa6ec18946b93c3369841afef256999b.jpeg)
3.2.2.组件说明
从Oracle中读取数据:读取存储在Oracle数据库表中的数据。
插入SQLServer:将从Oracle中读取的数据插入SQLServer。
主要代码如下:
![cldzd5.png wKioL1TAbuahww_sAAL8TdLnpYk534.jpg](https://i-blog.csdnimg.cn/blog_migrate/76fc917e09962ac9cfd39d285c539fdd.jpeg)
3.3. 从SQLServer读取写入本地
3.3.1.流程图
![cldzd6.png wKiom1TAbiGTTHPUAABW4K4Y8gw834.jpg](https://i-blog.csdnimg.cn/blog_migrate/282537546811cc5ec6afeace703a487e.jpeg)
3.3.2.组件说明
读取写入本地:
主要功能代码如下:
![cldzd7.png wKioL1TAbwHC8-x_AAJ543Gp5fk853.jpg](https://i-blog.csdnimg.cn/blog_migrate/6c6db206ba50aaa3b9186fe41637905b.jpeg)
基于AEAI ESB的处理大字段文档 下载