项目日记之ORACLE问题

     最近赶项目的一个模块,功能大致是每天定时从用户方另一个数据库里读取一些数据到项目所使用的Oracle10g数据库里,当然要经过逻辑上的转换才能入库。由于项目里使用了spring1.1 所以花了一部分时间调quartz,一部分时间搞定转换逻辑。

    用户方另一个数据库是老掉牙的Oracle8.0,更要命的是字符集是WE8ISO88591,我们的数据库是ZH16GBK的,使用Oracle8的驱动查询后转码是无问题的,但是问题出在一个应用无法同时load两个oracle的驱动,而使用任何一个驱动都无法访问版本不同的另一个库,这下犯愁了。本打算在was中建JNDI数据源来解决这个问题,偏偏Oracle8.0的驱动无法在WAS6中建数据源。

    这时,真体会到啥叫屋漏偏逢连夜雨了,一个转码加上一个数据库连接,两个数据库相连并不难,使用dblink,DBA帮忙倒腾了半天,终于把TNS配置好了,能够让两个跨世纪版本的数据库link上。但是db link带来的转码问题还是很头疼,DBA给出的方案:使用UTL_RAW包提供的方法,将需要转码的字段进行进制转换。

    在公司的模拟环境里,这个方案是没问题的,但是到用户现场一看,顿时傻眼了,人家的库当年安装的时候为了省点磁盘空间,没装上这个包,于是求爷爷告奶奶四出求救(节点不能拖啊),在笔记本上按上了两个模拟环境,终于还是靠DBA帮忙,把包head和包body导出来,之后又遇上包执行权限的问题,倒腾掉几个小时。

    最终在PM和用户商量周末备份数据,重装数据库前,搞定一切!!这个Oracle互相访问的问题,还真让我寝食难安了差不多一周,技术方案一换再换,看来以后要提前做好技术方案的论证。

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值