【发布时间】:2021-12-19 06:43:35
【问题描述】:
使用下面的选择查询,我可以获得删除多余斜杠的所需结果(3)
答案:
select regexp_replace(regexp_replace('p\\\\','[\\|\\\\\|\\\|\\\\]','~'),'(~~|~)','\\\\');
在 StoredProcedure 中使用相同的查询时会引发错误:
Invalid regular expression: '[|\||\]', missing ]: [|\||\] At Statement.execute
存储过程代码:
create or replace procedure back_slash(something varchar)
returns varchar
language javascript
execute as caller
as
$$
var command1=`select regexp_replace(regexp_replace('p\\\\','[\\|\\\\\|\\\|\\\\]','~'),'(~~|~)','\\\\')`;
var stmt1=snowflake.createStatement({sqlText: command1});
var rs1=stmt1.execute();
return 'successfully removed extra backslashs'
$$;
【问题讨论】:
-
反斜杠是 SP 中的转义字符,因此对于每个反斜杠,您需要添加另一个来转义它
标签: sql stored-procedures snowflake-cloud-data-platform