MySQL /Oracle 常见问题
- VARCHAR/VARCHAR2/NVARCHAR 差异:
MySQL 的 VARCHAR 是以字符为单位计算的,Oracle 的 VARCHAR 是
以字节为单位计算的,所以对中文的存储 Oracle 是 MySQL 的 2 倍
(GBK)和 3 倍(UTF8)
- NULL 差异
A. MySQL 端的值为 NULL,对应 Oracle 的值也为 NULL
B. MySQL 端的值为'',即空串,对应 Oracle 的值也为 NULL
- ORA-01438:value larger than precision allowed for this column.
oracle 在遇到 number 类型的精度问题时,提供异常没有对应的字段信息,造成问题很难解决。
在Oracle中,null和''(空字符串)是一个意思。
mysql数据迁移入oracle,如果两端对应的字段都为not null,那么mysql该字段的空字符串的该行数据,无法写入到oracle,因为oracle把空字符当做null