关于Union 中 ORA-12704:字符集不匹配问题的解决

在使用Union all连接时,若A集合中某列为nvarchar2或nvarchar类型,而B集合中无此列,用‘ ’ 来代替是会报字符集不匹配,解决方法有两种,见下面的示例

有问题的SQL:

select ‘中国‘,‘China‘,cast(‘中国‘ as nvarchar2(10)) T
from dual
union all
select ‘美国‘,‘USA‘,‘‘
from dual;

如上,T的类型为nvarchar2,长度为10,如果直接这样查询,就会报字符集不匹配,那么怎么来处理呢,可通过两种方法来解决

1.to_char()

select ‘中国‘,‘China‘,to_char(cast(‘中国‘ as nvarchar2(10))) T
from dual
union all
select ‘美国‘,‘USA‘,‘‘
from dual;

2.用N‘ ‘,N‘‘是将‘’转换为Unicode编码

select ‘中国‘,‘China‘,cast(‘中国‘ as nvarchar2(10)) T
from dual
union all
select ‘美国‘,‘USA‘,N‘‘
from dual;

时间: 2024-10-14 10:54:53

关于Union 中 ORA-12704:字符集不匹配问题的解决的相关文章

oracle Union 中 ORA-12704:字符集不匹配问题的解决 .

在使用Union all连接时,若A集合中某列为nvarchar2或nvarchar类型,而B集合中无此列,用‘ ’ 来代替是会报字符集不匹配,解决方法有两种,见下面的示例 例: select '中国','China',cast('中国' as nvarchar2(10)) T from dual union all select '美国','USA','' from dual; select '中国','China',cast('中国' as nvarchar2(10)) T from dua

oracle中nvarchar2字符集不匹配

oracle当多表union时遇到nvarchar2类型时报错 字符集不匹配对使用nvarchar的地方,加上 to_char( nvarchar 的变量或字段 ) 如:select to_char(name),price from aa union allselect  to_char(name),price from bb 3张表aa,bb,cc都有 name price 字段 查询价格最高的前3位姓名 select * from(select to_char(name),price fro

Oracle中NVARCHAR2字符集不匹配问题

Oracle中在做字符匹配时 遇到 NVARCHAR2 类型时报错,提示 字符集不匹配. 对使用 NVARCHAR2 的地方,需要对字段进行字符转换,加上 to_char(nvarchar2 字段) 即可. 例如: SELECT substr(bm.matnr, 3) wlbm, ms.maktx wlms, bm.meins jldw, bm.matkl wlz , bm.normt gybzms,bm.laeda gxsj,(case to_char(trim(bm.lvorm)) when

交叉报表列头排序时遇到的oracle问题—oracle ORA-12704:字符集不匹配、varchar2转化为nvarchar2字符缺失、case when else后的字符类型要一致

在做交叉报表列头的排序时,遇到这三个问题,下面具体来说一下. 设计的数据库的表结构如图1所示: 图1 要处出来student_name_,s.grade_,s.subject_name_,这三个属性,当时我是这样写的sql语句: select  s.student_name_, s.grade_,  s.subject_name_, case  s.subject_name_ when  '语文' then 'A语文' when  '数学' then 'B数学' when  '英语' then 

Audition CS6在Win 7中“音频输入的采样频率与输出设备不匹配”问题的解决 - imsoft.cnblogs

1.运行Audion CS6,出现问题框. 2.右击任务栏右下方的那个小喇叭图标,在弹出的提示框里,单击"播放设备".如图: 3.单击"播放设备"后,在图内左键单击"扬声器"然后双击"扬声器",出现下图,双击"属性"选项. 4.点击"高级",在选择采样率和位深度里选择与输入的音频的采样频率和位深相同的设置.我的输入和输出都选择的是"16位,4100Hz" 5.点&qu

Linux中的方括号字符集

Linux中的方括号字符集: [:digit:]  数字字符,0-9: [:lower:]  小写字母字符,a-z: [:upper:]  大写字母字符,A-Z: [:alpha:]  大小写字母字符,A-Za-z: [:alnum:]  数字.字母字符,0-9A-Za-z: [:space:]  空白(whitespace)字符: [:blank:]  空格(space)与定位(tab)字符: [:graph:]  非空格(nospace)字符: [:punct:]  标点符号字符: [:pr

C#中,使用正式表达式匹配获取所需数据

.NET中,使用正式表达式匹配获取所需数据 需求:获取一串字符串中,正则匹配出需要的数据. 例如以下字符串: string temp ="ErrorCode:-1,Message:{"UserId" : "1000","userName" : "ZhangSan"}"; 我需要获得“-1”和“{"UserId" : "1000","userName"

修改Windows中Oracle客户端字符集

1.cmd  进入dos界面 输入regedit  打开注册表. 2. 按照上图修改字符集. 注意: 查看字符集:Select userenv('language') from dual; 中文字符集:AMERICAN_AMERICA.ZHS16GBK 修改Windows中Oracle客户端字符集,布布扣,bubuko.com

not(expr|ele|fn)从匹配元素的集合中删除与指定表达式匹配的元素

not(expr|ele|fn) 概述 从匹配元素的集合中删除与指定表达式匹配的元素 参数 exprStringV1.0 一个选择器字符串.深圳dd马达 elementDOMElementV1.0 一个DOM元素 function(index)FunctionV1.4 一个用来检查集合中每个元素的函数.this是当前的元素. 示例 描述: 从p元素中删除带有 select 的ID的元素 HTML 代码: <p>Hello</p><p id="selected&quo