oracle - Varchar2(20 Byte) 列包含比允许更多的数据
问题描述
我有一个专栏x VARCHAR2(20 BYTE)
插入大小> 20字节的数据时,它可以正常工作。
这是它应该如何工作的吗?在这种情况下会出现错误。字符也从♫ -> ¿
UPDATE "table"
SET x = '¿¿¿¿¿¿¿¿¿¿¿¿☼☼☼☼☼☼☼'
WHERE xxx = 'xxx'
AND yyy = 'yyy'
提交成功
解决方案
刚刚通过使用查询发现字符集是 WE8MSWIN1252
SELECT value$ FROM sys.props$ WHERE name = 'NLS_CHARACTERSET' ;
这就是允许输入字符的原因,因为 WE8MSWIN1252 是单字节字符集。
推荐阅读
- c# - 使用 Rotativa Mvc 的 Pdf 中的边距选项
- python - tkinter 没有绑定所有指定的标签?
- docker - Docker 和 Windows - 连接尝试失败,因为连接方在一段时间后没有正确响应
- ruby - 如何遍历 Ruby 中数组的每个第二个元素?
- python-3.x - 根据条件Pandas Python提取行
- python - 获取每个硬盘分区的名称和大小
- jenkins - Jenkins Jenkinsfile Groovy bash 命令没有这样的文件或目录
- c - 读取一个矩阵,输出第i行之和等于第j列的所有 (i, j)对
- spring-boot - Spring Cloud Sleuth 如何在开箱即用的 Webflux 中传播 MDC 上下文,以便其内容可以记录在不同的线程中?
- java - Spring boot MockMVC post空指针异常