gpt4 book ai didi

oracle - Oracle 中的字符集不匹配错误

转载 作者:行者123 更新时间:2023-12-01 18:09:46 30 4
gpt4 key购买 nike

我正在尝试运行以下查询:

SELECT Script from (

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

union

SELECT 11 as ColOrder,' INSERT INTO PROJMOD VALUES(' || ID || ', ' || ProjID || ', ' || ModID || ', ' || ObjID || ', ''ABCD'', sysdate, ''ABCD'', 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'd ..将 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, 'hi' from dual
2 union all
3 select 2, 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

关于oracle - Oracle 中的字符集不匹配错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13354436/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com