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

如何使用Regex Substring函数提取SQL语句中的存储过程名称

存储过程名提取正则方案

适配场景

  • 带OR REPLACE的创建语法:Create OR Replace Procedure <存储过程名>()
  • 不带OR REPLACE的基础创建语法:CREATE PROCEDURE <存储过程名>()

通用正则表达式

(?i)(?:CREATE\s+(?:OR\s+REPLACE\s+)?PROCEDURE\s+)([a-zA-Z0-9_]+)

正则规则说明

  • (?i):开启大小写不敏感匹配,兼容全小写、全大写、大小写混合的SQL写法
  • (?:CREATE\s+(?:OR\s+REPLACE\s+)?PROCEDURE\s+):非捕获组,匹配两种前缀,?标识OR REPLACE片段为可选项
  • ([a-zA-Z0-9_]+):捕获组,匹配符合标准SQL标识符规则的存储过程名称,你可根据实际业务的命名规则调整允许的字符范围

不同数据库REGEXP_SUBSTRING使用示例

Snowflake 示例

SELECT REGEXP_SUBSTR(your_sql_column, '(?i)(?:CREATE\\s+(?:OR\\s+REPLACE\\s+)?PROCEDURE\\s+)([a-zA-Z0-9_]+)', 1, 1, 'e', 1) AS procedure_name
FROM your_query_history_table;

MySQL 8.0+ 示例

SELECT REGEXP_SUBSTR(your_sql_column, '(?i)(?:CREATE\\s+(?:OR\\s+REPLACE\\s+)?PROCEDURE\\s+)([a-zA-Z0-9_]+)', 1, 1, 'c', 1) AS procedure_name
FROM your_query_history_table;

测试验证结果

测试SQL文本提取结果
Create OR Replace Procedure PROCEDURENAME()PROCEDURENAME
CREATE PROCEDURE PROCEDUREENAME()PROCEDUREENAME
create procedure my_test_proc()my_test_proc
create or replace procedure Proc_123()Proc_123

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:15:03