加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle中的字符集不匹配错误

发布时间:2020-12-12 13:09:14 所属栏目:百科 来源:网络整理
导读:我跟随我询问我正在尝试运行: SELECT Script from (SELECT 9 as ColOrder,' INSERT INTO PROJ VALUES(' || ID || ',''' || Name || ''',''' || Version || ''',''ABCD'',sysdate,sysdate);' as Script FROM PROJ where Name like '%[Param.1]%'unionSELECT
我跟随我询问我正在尝试运行:
SELECT Script from (

SELECT 9 as ColOrder,' INSERT INTO PROJ VALUES(' || ID || ',''' || Name || ''',''' || Version || ''',''ABCD'',sysdate,sysdate);' as Script FROM PROJ where Name like '%[Param.1]%'

union

SELECT 11 as ColOrder,' INSERT INTO PROJMOD VALUES(' || ID || ',' || ProjID || ',' || ModID || ',' || ObjID || ',sysdate);' as Script FROM PROJMOD where ProjID in ( select ID from PROJ where Name like '%[Param.1]%')

) x

Order by ColOrder

但它给了我ORA-12704:字符集不匹配错误.

当我单独运行select语句时,它给了我正确的输出,但是当我同时选择两个select时,它会给出tme字符集不匹配错误.

这可能有什么问题?

因为你已经确认了一些东西是NVARchar的…将nvarchar转换为char例如
SQL> create table tab(a nvarchar2(2));

Table created.

SQL> insert into tab values ('a');

1 row created.

SQL> select 1,'hi' from dual
  2  union all
  3  select 2,a from tab;
select 1,'hi' from dual
          *
ERROR at line 1:
ORA-12704: character set mismatch

失败,因为“A”是NVARCHAR.所以to_char它:

SQL> select 1,to_char(a) from tab;

         1 'HI'
---------- ----
         1 hi
         2 a

或者将字符串文字’hi’强制转换为Nvarchar

SQL> select 1,n'hi' from dual
      2  union all
      3  select 2,a from tab;

             1 N'
    ---------- --
             1 hi
             2 a

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读