今天在从sqlserver导数据到oracle的过程中,oracle报错,提示不能将NULL值插入非空的列中。比对两个数据库的表结构后,发现不为空的列完全一样。由于不知道哪里出了问题,只好使用二分法查找出问题的行,只插入第一行没问题,插入1000行报错,插入500行没问题,就这样一点点的缩小范围,终于找到了无法插入的行是第953行。单独查询这一行,结果返回后立马知道原因了。这一行里面有一列为空,空值在sqlserver里面并不是NULL,可以填入非空的列中,但是在oracle中空值会自动转换为NULL,所以不能插入非空的列中。