ORA-12704:字符集不匹配
来源:互联网 发布:打字员赚钱软件 编辑:程序博客网 时间:2024/05/16 06:38
昨天在重建一个视图的时候,突然间就报了个ORA-12704字符集不匹配的错误。开始的时候我很是愕然,以为ORACLE是不是傻了,为什么会报这样的一个错误。
后来上网查了下,发现是由于NVARCHAR2与VARCHAR2的问题。以下是官方文档中关于这两种数据类型的介绍:
1
VARCHAR2
(size
[BYTE
| CHAR
])
Variable-length character string having maximum length size
bytes or characters. Maximum size
is 4000 bytes or characters, and minimum is 1 byte or 1 character. You must specify size
for VARCHAR2
.
BYTE
indicates that the column will have byte length semantics. CHAR
indicates that the column will have character semantics.
1
NVARCHAR2
(size
)
Variable-length Unicode character string having maximum length size
characters. The number of bytes can be up to two times size
for AL16UTF16
encoding and three times size
for UTF8
encoding. Maximum size
is determined by the national character set definition, with an upper limit of 4000 bytes. You must specify size
for NVARCHAR2
.
水平有限,翻译的大概意思我是这样理解的:
1.VARCHAR2
(size
[BYTE
| CHAR
])是可变长度的字符,最大长度为size个字节或者字符。最大长度为4000,最小长度为1。必须要指定VARCHAR2的长度。
BYTES表明表将会有字节长度的语义。CHAR表明列将有字符语句。
2.NVARCHAR2
(size
),可变长度UNICODE字符串的最大长度为size个字符。字节的长度当编码为AL16UTF16时可以是2倍,当编码是UTF8时为3倍。
最大长度决定于国家字符集(national character set)的定义,最大为4000个字节。必须要为NVARCHAR2指定长度。
也就是说,
相同点:a.两者都可用以定义可变长度的字符串
b.两者的最大长度都是4000
c.如果存储英文或者数字等两者基本可以等同
不同点:NVARCHAR2的长度是根据国家字符集来决定的。而VARCHAR2的单位有两种,分别是字节和字符。
解决方法:
1.TO_CHAR(NVARCHAR2_TYPE)
将NVARCHAR2转成VARCHAR
2.N'VARCHAR2_TYPE'
将字符转成UNICODE字符
以上解决方法引自:
http://blog.csdn.net/lqh4188/article/details/7498354
- ORA-12704: 字符集不匹配
- ORA-12704: 字符集不匹配
- ORA-12704:字符集不匹配
- ORA-12704:字符集不匹配
- ORA-12704:字符集不匹配错误
- Caused exception message is: ORA-12704: 字符集不匹配
- 关于Union 中 ORA-12704:字符集不匹配问题的解决
- 关于Union 中 ORA-12704:字符集不匹配问题的解决
- 关于union 中 ORA-12704:字符集不匹配问题的解决
- Oracle中由 case when 报错 ORA-12704:字符集不匹配的简易解决
- Oracle中 Union 中 ORA-12704:字符集不匹配问题的解决
- oracle:字符集不匹配
- UNION ALL 字符集不匹配
- oracle中nvarchar2字符集不匹配
- oracle中nvarchar2字符集不匹配
- union all 字符集不匹配问题
- 数据库中字符集不匹配报错
- 交叉报表列头排序时遇到的oracle问题—oracle ORA-12704:字符集不匹配、varchar2转化为nvarchar2字符缺失、case when else后的字符类型要一致
- BasicDAO与SpringDAO区别,使用Hibernate验证,注解方式实现主键自增,注解方式注入外键(一对多)
- UNIX网络编程——Posix 消息队列
- linux下alias命令详解
- 数据结构 单链表 C++面向对象方式实现
- Fiddler的使用方法介绍 ,http有条件的响应.
- ORA-12704:字符集不匹配
- linux下的find命令
- Linux find 命令使用小技巧一则
- dojo学习教程
- zebra被调用
- Performance and Diagnostics Hub in Visual Studio 2013
- 27.c/c++程序员面试宝典-复制构造函数
- 机顶盒基本知识
- "ld: library not found for -l...." 问题的解决