gpt4 book ai didi

snowflake-cloud-data-platform - 存储过程中的 REGEXP_SUBSTR 函数返回 null

转载 作者:行者123 更新时间:2023-12-04 08:05:02 26 4
gpt4 key购买 nike

我有以下字符串:'AAA|BBB||CCC|1.23'我要回:'CCC|1.23'使用正则表达式时:\w+\|\d(.\d+|$)我能够得到想要的结果。
在 Snowflake 中运行以下查询时,返回正确的结果:

SELECT REGEXP_SUBSTR('AAA|BBB||CCC|1.23', '\\w+\\|\\d(.\\d+|$)') AS regexp_return;
但是,当在存储过程中使用时,如下所示:
CREATE OR REPLACE PROCEDURE dnr.regexp_issue ()
returns string
language javascript
execute as owner

AS

$$
var sql_statement = `SELECT REGEXP_SUBSTR('AAA|BBB||CCC|1.23', '\\w+\\|\\d(.\\d+|$)') AS regexp_return;`

var query = snowflake.createStatement({sqlText: sql_statement});
var query_res = query.execute();
query_res.next();
result = query_res.getColumnValue(1);

return result;

$$;
由此产生的 CALL dnr.regexp_issue();返回 NULL好像没有找到匹配的模式。
有任何想法吗?

最佳答案

斜线需要双双引号,因为它们正在通过两个字符串解析器。

CREATE OR REPLACE PROCEDURE regexp_issue ()
returns string
language javascript
execute as owner

AS

$$
var sql_statement = `SELECT REGEXP_SUBSTR('AAA|BBB||CCC|1.23', '\\\\w+\\\\|\\\\d(.\\\\d+|$)') AS regexp_return;`

var query = snowflake.createStatement({sqlText: sql_statement});
var query_res = query.execute();
query_res.next();
result = query_res.getColumnValue(1);

return result;

$$;

call regexp_issue();
给出:
REGEXP_ISSUE
CCC|1.23

关于snowflake-cloud-data-platform - 存储过程中的 REGEXP_SUBSTR 函数返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66252736/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com