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

Oracle按条件拆分e_owner字段插入new_target表及报错解决

完整解决方案

核心修改点

  • 新增括号判断逻辑:使用REGEXP_LIKE(e_owner, '\(.*\)')匹配包含括号的内容,匹配成功则只生成1条数据,直接取完整e_owner作为字段值
  • 修正插入语句语法:t_id字段已配置默认值new_target_sq.NEXTVAL,无需显式传值,删除原语句中错误的t_id.nextval写法,直接搭配SELECT结果集插入即可

可直接运行的插入语句

INSERT INTO new_target(e_id, t_owner, sort_order)
SELECT 
    e_id,
    CASE 
        WHEN REGEXP_LIKE(e_owner, '\(.*\)') THEN e_owner
        ELSE TRIM(REGEXP_SUBSTR(e_owner, '[^,]+', 1, LEVEL)) 
    END AS t_owner,
    LEVEL AS sort_order
FROM new_staging
CONNECT BY e_id = PRIOR e_id
    AND LEVEL <= CASE 
                    WHEN REGEXP_LIKE(e_owner, '\(.*\)') THEN 1 
                    ELSE REGEXP_COUNT(e_owner, ',') + 1 
                END
    AND PRIOR SYS_GUID() IS NOT NULL;

执行效果验证

插入后new_target表共生成8条数据,完全符合需求:

  • e_id=1:生成2条数据,sort_order分别为1、2,对应拆分后的AUZA、PAUL OSA
  • e_id=2:生成2条数据,sort_order分别为1、2,对应拆分后的PAUL、REXX OSA
  • e_id=3:生成1条数据,sort_order为1,保留完整原始e_owner值
  • e_id=4:生成3条数据,sort_order分别为1、2、3,对应拆分后的PAUL、REXX、OSA

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:24:07