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

在创建交叉报表时,遇到Oracle ORA-12704 错误,原因是VARCHAR2与NVARCHAR2字符类型不匹配。通过使用CAST或TO_CHAR进行类型转换,并确保CASE语句中WHEN和ELSE后的字符类型一致,成功解决了字符丢失和字符集不匹配的问题。
摘要由CSDN通过智能技术生成

在做交叉报表列头的排序时,遇到这三个问题,下面具体来说一下。

设计的数据库的表结构如图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 'C英语'

else  s.subject_name_

end

from student s

执行之后报如图2的错误:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值