您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页更改DB2 - ORACLE兼容

更改DB2 - ORACLE兼容

来源:意榕旅游网
DB2与Oracle兼容问题

最近,碰到这样一个问题,两个数据库的两个表结构一样,其中一张表将NULL视为空串,而另一个则相反,对比了两个数据库的配置参数发现不同之处如下图。

图左侧说明 Number compatibility = ON、Varchar2 compatibility = ON说明打开Oracle兼容,则该数据库将NULL视为空串,在数据表中若有字段不能为空,插入空串时,提示空值不能插入一个非空字段中;而图右侧则相反,说明没有打开Oracle兼容,使用的只是DB2自己的配置,而DB2将空串视为非空值(空串并不等于NULL值),所以为某个非空字段插入空串时可以成功。解决方案如下:分两种情况。

情况一 还没有创建数据库

步骤一:查看DB2实例的配置 db2set -all,若有下面的字样

DB2_COMPATIBILITY_VECTOR = ORA 说明打开了Oracel兼容,需要将其关掉

步骤二:更改DB2数据库配置 db2set DB2_COMPATIBILITY_VECTOR= 回车

再次,执行db2set -all,若不见DB2_COMPATIBILITY_VECTOR = ORA 说明更改成功。

步骤三:重启数据库 db2stop force ; db2start

步骤四:创建数据库:db2 \"CREATE db seatmap USING CODESET UTF-8 TERRITORY CN\";

步骤五:查看数据库的配置参数:首先,连接数据库 db2 connect to seatmap;其次,db2 get db cfg for seatmap进行查看数据库seatmap的配置参数。若看到Number compatibility 、Varchar2 compatibility 、Date compatibility 均等于OFF,说明已经关闭了。

情况二 已创建数据库

前三步同情况一。

步骤四:删除之前的数据库 db2 drop db seatmap

步骤五:创建数据库 db2 \"CREATE db seatmap USING CODESET UTF-8 TERRITORY CN\";

步骤六:查看数据库的配置参数:首先,连接数据库 db2 connect to seatmap;其次,db2 get db cfg for seatmap进行查看数据库seatmap的配置参数。若看到Number compatibility 、Varchar2 compatibility 、Date compatibility 均等于OFF,说明已经关闭了。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务