Oracle12.2でできることは次のとおりです。 Oracle 19では、json_object(*)
を使用すると、少し簡単になる場合があります。 。
標準のDEPT
を使用する SCOTT
のテーブル 説明のためのスキーマ:
declare
items json_object_t;
result clob;
begin
select json_object(
key 'items'
value json_arrayagg(
json_object(
key 'deptno' value deptno,
key 'dname' value dname,
key 'loc' value loc
)
) format json
)
into result
from scott.dept;
items := json_object_t(result);
-- Check what is stored in items
dbms_output.put_line('items.stringify = ' || chr(10) || items.stringify);
end;
/
stringify
への呼び出しを含めました json_object_t
のコンテンツを表示するメソッド 物体。 ApExはjson_object_t
でそれを好むかもしれません データ型-必要なのが文字列だけの場合、result
なので、そのオブジェクトを作成する必要はありません。 すでに必要な文字列です。
結果は次のようになります:
items.stringify =
{"items":[{"deptno":10,"dname":"ACCOUNTING","loc":"NEW YORK"},{"deptno":20,"dname":"RESEARCH","loc":"DALLAS"},{"deptno":30,"dname":"SALES","loc":"CHICAGO"},{"deptno":40,"dname":"OPERATIONS","loc":"BOSTON"}]}
PL/SQL procedure successfully completed.
文字列はきれいにフォーマットされていないことに注意してください-そしてそうであるべきではありません。これは、「送信」側からではなく、受信後の最後のステップとしてのみ実行することです。