SQL 正则表达式抛出状态=42000,代码=40000

Posted

技术标签:

【中文标题】SQL 正则表达式抛出状态=42000,代码=40000【英文标题】:SQL Regex throwing state=42000,code=40000 【发布时间】:2020-02-03 13:41:56 【问题描述】:
case regexp_extract(network_information,'^([\\w|-]+)[.|;].*',1) then .........

对于这部分代码,我得到 ParseException line 22:2 cannot identify input near '*' ',' 'case' in expression specification (state=42000,code=40000) 谁能帮帮我。

【问题讨论】:

【参考方案1】:

regexp 看起来不错。案例是错误的。应该是这样的:

case when regexp_extract(network_information,'^([\\w|-]+)[.|;].*',1) = 'something'
         then ...
 end

或者像这样:

case regexp_extract(network_information,'^([\\w|-]+)[.|;].*',1)
     when 'something'      then ...
     when 'something-else' then ...
 end

【讨论】:

以上是关于SQL 正则表达式抛出状态=42000,代码=40000的主要内容,如果未能解决你的问题,请参考以下文章

具有正确 DDL sql 的 H2 org.h2.jdbc.JdbcSQLException:错误代码 = [42000-196]

pl/sql 正则表达式验证

连接失败:SQLSTATE [42000]:语法错误或访问冲突:1064

SQL 错误 [904] [42000]:ORA-00904:“SPAREBOX”:无效标识符 [重复]

为啥我是 laravel 抛出 SQLSTATE[42000]:语法错误或访问冲突:1064 错误

不到40行代码构建正则表达式引擎