- oracle pljson输出编码问题
DECLARE
l_result_json json := json('{
"test1" : "ABCDE",
"test2" : "测试" }');
l_temp_clob CLOB;
BEGIN
-- 将ascii_output设为false后,to_char,to_clob等方法正常输出
-- pljson_printer.ascii_output := FALSE;
--
l_result_json.print;
dbms_output.put_line(l_result_json.to_char);
dbms_output.put_line(l_result_json.get_string('test2'));
l_temp_clob := empty_clob();
dbms_lob.createtemporary(l_temp_clob,
FALSE, -- 参数含义:是否将lob读取到缓冲区
dbms_lob.session); -- 创建临时clob,在会话结束时清除该clob
l_result_json.to_clob(l_temp_clob, TRUE);
dbms_output.put_line(l_temp_clob);
dbms_lob.freetemporary(l_temp_clob);
END;
- 输出结果
print,to_char,to_clob等方法会将汉字输出为编码。
{
"test1" : "ABCDE",
"test2" : "\u6D4B\u8BD5"
}