Oracle PL / JSON to_clob()失败

时间:2014-12-22 18:34:21

标签: json oracle clob pljson

以下代码直接来自PL / JSON附带的示例文件ex11.sql。我添加的是用于使字符串变大的循环代码,因为我想测试一个真正的clob。它失败了一定的长度,我无法弄清楚原因。

  • 32,763次
  • 32,764失败
  • 32,768次
  • 结果继续这样。
  • 注意:一旦你添加了8个额外的硬编码json字符,上面例子的真实长度就变成:32,771(运行),32,772(失败)和32,776(运行)。

关于如何使其始终如一地工作的任何想法?

set serveroutput on;

declare
  teststringlength pls_integer := 32763;
  i pls_integer := 0;
  obj json;
  my_clob clob := '{"a":"';

begin

  while i < teststringlength loop
    my_clob := concat(my_clob,'X');
    i := i + 1;
  end loop;
  my_clob := concat(my_clob,'"}');

  obj := json(my_clob);
  obj.print;
  dbms_lob.trim(my_clob, 0); --empty the lob
  obj.to_clob(my_clob);
  dbms_output.put_line('----');
  dbms_output.put_line(my_clob);
  --example with temperary clob
  my_clob := empty_clob();
  dbms_lob.createtemporary(my_clob, true);
  obj.to_clob(my_clob, true);
  dbms_output.put_line('----');
  dbms_output.put_line(my_clob);
  dbms_lob.freetemporary(my_clob);

end;
/

enter image description here

0 个答案:

没有答案