gpt4 book ai didi

sql - 插入时丢失特殊字符

转载 作者:行者123 更新时间:2023-12-03 16:33:29 25 4
gpt4 key购买 nike

我正在使用oracle 11g并尝试插入包含特殊UTF8字符的字符串,例如'(ε-c'。databse的NLS字符集是...

NLS_NCHAR_CHARACTERSET  AL16UTF16
NLS_CHARACTERSET WE8ISO8859P1


当我将上面的字符串复制并粘贴到 NVARCHAR字段中时,它可以正常工作。

如果执行以下操作,我将在该字段中获得一个颠倒的问号

insert into title_debug values ('(ε- c');


标题调试表由一个名为 的单个 NVARCHAR2(100)字段组成。

我试图将这个字符串分配给一个 NVARCHAR2(100)变量,然后进行分配。并且尝试了所有我可以找到的不同的CAST / CONVERT ect函数,但没有任何效果。

任何帮助将不胜感激。

更新

我已经执行了

select dump(title, 1016), dump(title1, 1016)
into v_title, v_title1
from dual


其中title是作为varchar传入的字符串,title1是作为NVarchar传入的字符串。

毫无疑问,编码方式为WE8ISO8859P1和AL16UTF16。但在两个ε上都以十六进制“ BF”表示。这是颠倒的问号。

我剩下的唯一想法就是尝试将其作为原始方法通过,然后对其进行处理。但是,我还无法弄清楚如何使用XQuery(OSB)将字符串转换为可接受的格式。

继续感谢您的协助。

最佳答案

我们的DBA找到了解决此问题的方法。答案在于总线上dbc连接上的设置,以告诉它将utf8转换为NChar。

在“连接池”页面上,将以下行添加到“属性”框中。

oracle.jdbc.convertNcharLiterals = true
oracle.jdbc.defaultNchar = true

这将使您能够在保持utf8字符的同时插入NVarchar2字段。

干杯

关于sql - 插入时丢失特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24971006/

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