我知道我可以使用 json_arrayagg。例如:
WITH
ta
AS
(SELECT 1 a, 2 b FROM DUAL
UNION ALL
SELECT 11, 22 FROM DUAL)
SELECT JSON_ARRAYagg( json_object(ta.a,ta.b) )
FROM ta;
[{"a":1,"b":2},{"a":11,"b":22}]
但我必須命名每一列。
SELECT XMLTYPE.createXML (DBMS_XMLGEN.getxml ('select 2 as a from dual')) FROM DUAL;
更方便。你不給列的名稱。
有沒有類似的方法來做到這一點。
我也試過了。
select JSON_ARRAY(DBMS_XMLGEN.getxml ('select 2 as a from dual')) from dual
但正如預期的那樣
>["<?xml version=\"1.0\"?>\n<ROWSET>\n <ROW>\n <A>2</A>\n </ROW>\n</ROWSET>\n"]
代碼
uj5u.com熱心網友回復:
從 19c 開始,您可以這樣做json_object (*),這將從列名中推斷出屬性名稱:
with ta as (
select 1 a, 2 b from dual
union all
select 11, 22 from dual
)
select json_arrayagg (
json_object( * )
)
from ta;
JSON_ARRAYAGG(JSON_OBJECT(*))
-------------------------------
[{"A":1,"B":2},{"A":11,"B":22}]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/489241.html
