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

Oracle REST Handler批量JSON按行拆分插入单个CLOB列方案咨询

问题说明

按照Oracle-base指南完成Oracle DB、ORDS安装及全部Handler、关联存储过程创建后,存在待优化逻辑:批量提交的JSON报文为每行一条、末尾自带换行符,现有逻辑会将全部报文整体存入单条CLOB字段,需要实现按行拆分单条JSON,分别插入到独立的CLOB列中。

原有代码参考
  • Handler代码
BEGIN
      create_kayit(p_kayit => :body_text);
END;
  • 原有存储过程代码
create or replace PROCEDURE create_kayit (
p_kayit IN CLOB
)
AS
BEGIN
    INSERT INTO uemtest (kayit) VALUES (p_kayit);
EXCEPTION
    WHEN OTHERS THEN
        HTP.print(SQLERRM);
END;
最终实现方案

无需修改现有Handler逻辑,仅调整存储过程的插入逻辑即可,通过Oracle正则多行匹配+层级查询实现按行拆分CLOB内容批量插入:

CREATE OR REPLACE PROCEDURE create_kayit (p_kayit IN CLOB) AS
BEGIN
        INSERT INTO UEMTEST (KAYIT)
        SELECT
        REGEXP_SUBSTR(p_kayit, '.+', 1, level, 'm') KAYIT
        FROM DUAL connect by level <= length(REGEXP_REPLACE(p_kayit,'.+'));
EXCEPTION
    WHEN OTHERS THEN
        HTP.print(SQLERRM);
END;

逻辑说明

  • REGEXP_SUBSTR的第5个参数传入'm'开启多行匹配模式,.默认不会匹配换行符,可逐行提取非空内容
  • 层级查询connect by level <= length(REGEXP_REPLACE(p_kayit,'.+'))控制循环次数等于报文总行数,逐行提取内容分别插入,实现一行JSON对应一条表记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:54:02