随着信创的进程的推进,越来越多的程序采用了国产化数据库。我们公司的产品也加入到了国产化的大潮中。我们之前采用的是SQL SERVER数据库,使用了达梦的DTS迁移工具进行了整库的数据迁移。
不过在迁移后也发现了一定的问题,在这里和大家分享一下,希望对大家有所帮助。
在原先的SQL SERVER数据库表中,我们有些表添加了默认时间戳列,但是在迁移到达梦数据库后对应的列并未将默认值同步迁移。导致了在程序使用对应功能时直接报错,不能将空值插入列。
以下SQL可以去查看未添加默认值的列
select TABLE_NAME,DATA_DEFAULT,* from user_tab_columns where COLUMN_NAME='对应列名' and DATA_TYPE='BINARY';
当DATA_DEFAULT列为空则说明当前列的默认值未迁移到达梦数据库中。
这时则需要手动去添加
select 'alter table ' ||TABLE_NAME || ' ALTER COLUMN RECORD_TIME SET DEFAULT (cast(UNIX_TIMESTAMP(SYSDATE) as bigint))'|| ';'
from user_tab_columns where COLUMN_NAME='RECORD_TIME' and DATA_TYPE='BINARY';
添加后再测试程序,流程正常。希望以上对大家有所帮助!
文章
阅读量
获赞