我正在尝试创建 JSON 输出,但它显示被截断。
表创建和插入:
create table test(c1 number, c2 varchar2(10), c3 varchar2(100));
begin
for i in 1 .. 1000 loop
insert into test values (i, 'val_' || i, 'descption of ' || i);
end loop;
end;
我执行的 SQL 查询:
SELECT JSON_ARRAYAGG(
distinct JSON_OBJECT(
'id' VALUE c1,
'value' VALUE c2,
'description' VALUE c3) RETURNING CLOB)
FROM test;
这是输出:
[{"id":1,"value":"val_1","描述":"描述 1 英寸
我使用的是 Oracle 12.2.0.1.0 数据库版本和 SQL Developer 版本 23.1.1.339,Build 339.1213
谁能帮我理解我应该怎么做才能获得所有行?
谢谢你,
你可以尝试像下面这样测试。
create table TEST_TABLE(c1 number, c2 varchar2(10), c3 varchar2(100));
begin
for i in 1 .. 1000 loop
insert into TEST_TABLE values (i, 'val_' || i, 'descption of ' || i);
end loop;
end;
/
Commit;
SELECT id, value, description
FROM json_table( ( SELECT J_ARR
FROM (Select J_ARR
From ( SELECT JSON_ARRAYAGG(
distinct
JSON_OBJECT(
'id' VALUE c1,
'value' VALUE c2,
'description' VALUE c3
)
RETURNING CLOB
) "J_ARR"
FROM TEST_TABLE
)
)
) , '$[*]'
COLUMNS ( id NUMBER PATH '$.id',
value VARCHAR PATH '$.value',
description VARCHAR PATH '$.description'
)
)
/* R e s u l t :
ID VALUE DESCRIPTION
---- -------- -------------
1 val_1 descption of 1
2 val_2 descption of 2
3 val_3 descption of 3
... ... ...
999 val_999 descption of 999
1000 val_1000 descption of 1000 */