当我们建表时,使用 VARCHAR2(50),从开发的角度,可能会认为是 VARCHAR2(50 个字符),而不是 VARCHAR2(50 字节)。

但 Oracle 数据库,如果你没写清楚 VARCHAR2(50 CHAR) 还是 VARCHAR2(50 BYTE),而只是写了 VARCHAR2(50),那么 Oracle 大概率默认行为是 VARCHAR2(50 BYTE)。

这几天帮助同事清理数据,发现系统中有丢失数据的问题,查了失败日志,才发现是这个问题。
不知道全国多少数据系统被 Oracle 的这个特性坑了。

标签: none

添加新评论