我跟随我询问我正在尝试运行:
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
Run Code Online (Sandbox Code Playgroud)
但它给了我 ORA-12704: character set mismatch error.
当我单独运行两个select语句时,它给了我正确的输出但是当我同时进行两个select的并集时,它给出了tme字符集不匹配错误.
这可能有什么不对?
Daz*_*zaL 12
因为你已经确认了某些东西是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
Run Code Online (Sandbox Code Playgroud)
失败,因为"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
Run Code Online (Sandbox Code Playgroud)
或者将字符串文字'hi'强制转换为Nvarchar
SQL> select 1, n'hi' from dual
2 union all
3 select 2, a from tab;
1 N'
---------- --
1 hi
2 a
Run Code Online (Sandbox Code Playgroud)
SELECT Script from (
SELECT 9 as ColOrder, ' INSERT INTO PROJ VALUES(' || to_char(ID) || ',''' || to_char(Name) || ''', ''' || to_char(Version) || ''', ''ABCD'', sysdate , ''ABCD'', sysdate);' as Script FROM PROJ where Name like '%[Param.1]%'
union
SELECT 11 as ColOrder,' INSERT INTO PROJMOD VALUES(' || to_char(ID) || ', ' || to_char(ProjID) || ', ' || to_char(ModID) || ', ' || to_char(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
Run Code Online (Sandbox Code Playgroud)
我刚刚添加了 TO_CHAR 函数,这将起作用。显然,您的字段具有 Oracle 无法隐式转换的字符数据类型,因此您只需要自己显式转换它,但要小心避免因转换而丢失任何字符。
| 归档时间: |
|
| 查看次数: |
40047 次 |
| 最近记录: |