首页 > 解决方案 > Varchar2(20 Byte) 列包含比允许更多的数据

问题描述

我有一个专栏x VARCHAR2(20 BYTE)

插入大小> 20字节的数据时,它可以正常工作。

这是它应该如何工作的吗?在这种情况下会出现错误。字符也从♫ -> ¿

UPDATE "table" 
    SET x = '¿¿¿¿¿¿¿¿¿¿¿¿☼☼☼☼☼☼☼' 
WHERE xxx = 'xxx' 
  AND yyy = 'yyy'

提交成功

标签: oraclecharacter-encoding

解决方案


刚刚通过使用查询发现字符集是 WE8MSWIN1252

SELECT value$ FROM sys.props$ WHERE name = 'NLS_CHARACTERSET' ;

这就是允许输入字符的原因,因为 WE8MSWIN1252 是单字节字符集。


推荐阅读