首页 > 数据库技术 > 详细

PL/SQL Character set mismatch

时间:2020-04-17 13:40:01      阅读:72      评论:0      收藏:0      [点我收藏+]

1.出现原因

在进行union all的操作时,如果两个列的字符集不匹配,就会报此错误。在Oracle中varchar(char)和nvarchar(nchar)所使用的字符集是不同的,前者使用8-bit codepage,后者使用unicode.虽然codepage在空间上消耗更少,但是使用unicode好处在兼容性更强,特别是在于其他系统交互的时候减少了转换所需消耗的时间。

2.解决方法

核心思路是将varchar转换为nvarchar或者将nvarchar转换为varchar,这里提供两个方法以供参考。

2.1 N

对于常量,再其前边加N可以将其转换为nchar

2.1 to_char() / to_nchar()

TO_CHAR:

TO_CHAR (character) converts NCHAR, NVARCHAR2, CLOB, or NCLOB data to the database character set. The value returned is always VARCHAR2.

TO_NCHAR:

TO_NCHAR (character) converts a character string, CHAR, VARCHAR2, CLOB, or NCLOB value to the national character set. The value returned is always NVARCHAR2.

PL/SQL Character set mismatch

原文:https://www.cnblogs.com/Oliver1993/p/12719250.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!