PL / SQL转换为JSON

时间:2018-06-30 00:20:36

标签: json database loops plsql database-cursor

我是使用PL / SQL的新手(尽管我以前有一些SQL经验)。我一直在尝试将特定数据转换为JSON。我在整个Internet上进行了研究,但无法弄清楚代码中的错误。它确实产生了诸如“ ORA-12801”的错误。这实际上是我正在处理的大型数据集。我只想使用游标循环,因为它比使用其他库更容易使用。因此,您可以在查看代码后提出意见或想法? **更新:我正在使用Toad for Oracle来存储数据。 ** UPDATE2:我已经研究了另一个链接,但是由于我不希望使用其他库(例如PL / JSON),因此无法解决我的问题。相反,我想在PL / SQL中使用简单的游标语句将表的列仅转换为JSON。

DECLARE 
  links varchar2(750);

  CURSOR statement
  IS
    SELECT DISTINCT NAME, GROUP
    FROM ST.PEOPLE
    GROUP BY ST.PEOPLE.NAME, ST.PEOPLE.GROUP
    ORDER BY ST.PEOPLE.NAME ASC;

BEGIN 
  FOR line IN statement
  LOOP
    links := '{"source":"'|| line.NAME ||'", "target":"'|| line.GROUP||'""}';
  END LOOP;

  dbms_output.put_line(links);

END; 

失败:

ORA-12801: error signaled in parallel query server P045
ORA-12853: insufficient memory for PX buffers: current 16352K, max needed 702720K
ORA-04031: unable to allocate 65560 bytes of shared memory (“large pool”, “unknown object”, “large pool”, “PX msg pool”)
ORA-06512: at line 17

The error while running

1 个答案:

答案 0 :(得分:0)

我使用数据库的按钮之一打开了“ DBMS输出”上的输出以执行代码,从而解决了问题。