当我在雪花程序中使用 regex_replace 时不起作用
When i use regex_replace in procedure in snowflake not working
create or replace function sppi()
returns VARCHAR
language javascript
as
$$
var A= regexp_replace('Customers - (NY)','\(|\)','');
return A;
$$
;
call sppi();
好吧,从 console/WebUI 的角度来看,您的 REGEXP 是有效的:
select 'Customers - (NY)' as str, regexp_replace(str,'\(|\)','');
STR
REGEXP_REPLACE(STR,'\(|\)','')
Customers - (NY)
Customers - NY
所以在 javascipt 函数中你不能直接调用 SQL 函数,所以如果我们转向 Snowflake 脚本我们可以。
BEGIN
let A := regexp_replace('Customers - (NY)','\(|\)','');
RETURN :A;
END;
anonymous block
Customers - NY
where-as 如果您想继续使用 Javasript,让我们使用 Javascript 替换:
create or replace function sppi()
returns VARCHAR
language javascript
as
$$
var A= 'Customers - (NY)'.replace(/\(|\)/g,'');
return A;
$$
;
select sppi();
SPPI()
Customers - NY
create or replace function sppi()
returns VARCHAR
language javascript
as
$$
var A= regexp_replace('Customers - (NY)','\(|\)','');
return A;
$$
;
call sppi();
好吧,从 console/WebUI 的角度来看,您的 REGEXP 是有效的:
select 'Customers - (NY)' as str, regexp_replace(str,'\(|\)','');
STR | REGEXP_REPLACE(STR,'\(|\)','') |
---|---|
Customers - (NY) | Customers - NY |
所以在 javascipt 函数中你不能直接调用 SQL 函数,所以如果我们转向 Snowflake 脚本我们可以。
BEGIN
let A := regexp_replace('Customers - (NY)','\(|\)','');
RETURN :A;
END;
anonymous block |
---|
Customers - NY |
where-as 如果您想继续使用 Javasript,让我们使用 Javascript 替换:
create or replace function sppi()
returns VARCHAR
language javascript
as
$$
var A= 'Customers - (NY)'.replace(/\(|\)/g,'');
return A;
$$
;
select sppi();
SPPI() |
---|
Customers - NY |