PL/SQL 转换为 JSON
PL/SQL Convert to JSON
我是 PL/SQL 的新手(尽管我之前有一些 SQL 经验)。我一直在尝试将特定数据转换为 JSON。我在整个 Internet 上进行了研究,但无法弄清楚我的代码出了什么问题。它确实产生了诸如 "ORA-12801" 之类的错误。这实际上是我正在处理的一个大型数据集。我只想按原样使用游标循环,因为它比使用其他库更容易使用。因此,您能否在看完代码后提供意见或想法?
**更新:我正在使用 Toad for Oracle 获取数据。
**UPDATE2:我已经查看了其他 link,但这并没有解决我的问题,因为我不想使用其他库,例如 PL/JSON。相反,我想在 PL/SQL 中使用一个简单的游标语句将 table 的列仅转换为 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
我解决了我的问题,方法是使用数据库的一个按钮打开 "DBMS Output" 上的输出以执行代码并且它起作用了。
我是 PL/SQL 的新手(尽管我之前有一些 SQL 经验)。我一直在尝试将特定数据转换为 JSON。我在整个 Internet 上进行了研究,但无法弄清楚我的代码出了什么问题。它确实产生了诸如 "ORA-12801" 之类的错误。这实际上是我正在处理的一个大型数据集。我只想按原样使用游标循环,因为它比使用其他库更容易使用。因此,您能否在看完代码后提供意见或想法? **更新:我正在使用 Toad for Oracle 获取数据。 **UPDATE2:我已经查看了其他 link,但这并没有解决我的问题,因为我不想使用其他库,例如 PL/JSON。相反,我想在 PL/SQL 中使用一个简单的游标语句将 table 的列仅转换为 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
我解决了我的问题,方法是使用数据库的一个按钮打开 "DBMS Output" 上的输出以执行代码并且它起作用了。