PL / JSON软件是否支持UTF-8字符

时间:2014-12-09 01:59:09

标签: json plsql pljson

我使用PL / JSON将数据从MongoDB解析到Oracle DB。这些包适用于拉丁字符。但是,当有带有中文字符的json_value时,oracle中的结果值完全被破坏(问号,符号......等)。 例如,我使用以下行来解析:

Remarks := json_ext.get_string(json(l_list.get(i)),'Remarks');

我知道json和get_string类型的函数是使用varchar而不是nvarchar。更重要的是,Oracle数据库实例支持中文(我可以看到,当我直接插入表时,不会发生损坏。只有当我解析中文json文件时它才会被破坏。) 所以我的问题是,PL / JSON软件是否支持中文字符?我是否需要自己更新包以容纳中文字符?究竟需要修复的地方?

在adidtion中,我运行了以下内容:

select value from nls_database_parameters where parameter='NLS_CHARACTERSET';

然后返回:AL32UTF8。

并不意味着我的数据库配置为UTF-8?或者还有其他事情需要检查这个pupose?

更新

受@ jsumners'的启发评论,我试图跟踪腐败来源,我从一开始就找到了它。也就是说,下面的代码段在使用PL / SJON接收htp响应之前运行:

BEGIN
      LOOP
        UTL_HTTP.read_text(l_http_response, buf);
        DBMS_OUTPUT.PUT_LINE(buf);
        l_response_text := l_response_text || buf;
      END LOOP;
    EXCEPTION
    WHEN UTL_HTTP.end_of_body THEN
      NULL;
    END;

DBMS_OUTPUT.PUT_LINE(buf);返回json的损坏字段。我不确定这是否与我发送和接收htp请求的方式有关。值得注意的是,buf是nvarchar2。

0 个答案:

没有答案