You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PL/SQL的codelist类型集合转换为JSON_OBJECT?

解决方案(Oracle环境)

假设你使用的是Oracle数据库(JSON_OBJECT是Oracle 12c及以上版本支持的函数),可以通过以下方式将codelist类型的变量转换为目标JSON格式:

1. 先确认自定义表类型的定义(若未创建)

CREATE OR REPLACE TYPE codelist AS TABLE OF VARCHAR2(100);
/

2. PL/SQL中转换的示例代码

DECLARE
  final codelist := codelist('1','2','3'); -- 你的表类型变量
  target_json CLOB;
BEGIN
  -- 将表类型展开为行集,聚合为JSON数组后包装成指定结构的JSON对象
  SELECT JSON_OBJECT('New' VALUE JSON_ARRAYAGG(column_value))
  INTO target_json
  FROM TABLE(final);
  
  -- 输出结果,也可根据需求写入表或返回
  DBMS_OUTPUT.PUT_LINE(target_json);
END;
/

关键逻辑说明

  • TABLE(final):将自定义表类型的变量展开为行数据集,每行默认列名为column_value
  • JSON_ARRAYAGG(column_value):把展开后的所有值聚合为一个JSON数组
  • JSON_OBJECT('New' VALUE ...):将生成的JSON数组绑定到New键下,形成目标JSON结构

如果需要严格保持元素顺序,可以在JSON_ARRAYAGG中添加排序条件,比如JSON_ARRAYAGG(column_value ORDER BY column_value)。

内容的提问来源于stack exchange,提问作者Sheeba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 03:10:13