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

Oracle 19c中如何提取可变长度Var_开头变量并拆分至多列

Oracle 19c 提取脚本中的Var_前缀变量并拆分列

针对你的需求,可通过Oracle 19c的正则表达式函数实现从Script列中提取以Var_开头的变量,并拆分为Var1、Var2、Var3列,具体方案如下:

测试数据准备(可选)

如果需要验证效果,可先创建测试表并插入示例数据:

CREATE TABLE test_data (
    Ident VARCHAR2(10),
    Script VARCHAR2(200)
);

INSERT INTO test_data VALUES ('ID1', 'Var_xxx_calc + Var_yyy_db + Var_zzz_calc');
INSERT INTO test_data VALUES ('ID2', 'if Var_xxx_calc + Var_zzz_db > 10 then ''OK'' else ''NOK''');

核心查询语句

替换test_data为你的实际表名,执行以下SQL即可得到目标结果:

SELECT
    Ident AS "标识(Ident)",
    Script AS "脚本(Script)",
    REGEXP_SUBSTR(Script, 'Var_[^[:space:]+><=''()]+', 1, 1) AS Var1,
    REGEXP_SUBSTR(Script, 'Var_[^[:space:]+><=''()]+', 1, 2) AS Var2,
    REGEXP_SUBSTR(Script, 'Var_[^[:space:]+><=''()]+', 1, 3) AS Var3
FROM test_data;

正则表达式说明

Var_[^[:space:]+><=''()]+ 的含义:

  • Var_:匹配变量的固定前缀
  • [^[:space:]+><=''()]+:匹配任意多个不是空格、+、>、<、=、单引号、括号的字符,确保完整提取变量名(适配任意长度的Var_前缀变量)

若脚本中还有其他可能的变量分隔符(比如-、*等),只需在[^...]中添加对应的字符即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 10:45:33