Snowflake removing backslashes during Procedure compilation?(在过程编译过程中清除雪花反斜杠吗?)
本文介绍了在过程编译过程中清除雪花反斜杠吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
由于某种原因,Snowflake从我的regex函数中删除了反斜杠,但仅当我在创建Javascript过程时将该函数放在&qot;$$";之间时。
对于上下文,下面是我的Regex函数:
CREATE OR REPLACE FUNCTION "REGEX_REPLACE_ME"("SUBJECT" VARCHAR(16777216), "PATTERN" VARCHAR(16777216), "REPLACEMENT" VARCHAR(16777216))
RETURNS VARCHAR(16777216)
LANGUAGE JAVASCRIPT
AS '
const p = SUBJECT;
let regex = new RegExp(PATTERN, ''i'')
return p.replace(regex, REPLACEMENT);
';
当我简单地在SQL中运行它时,它可以工作;它会将";Apple.com";更改为";Apple";。
SELECT REXP_REPLACE_ME('APPLE.COM','\.[A-Z]{2,3}',' ') -- the regex pattern \.[A-Z]{2,3} is meant to remove domains i.e. ".com",".org", etc..
但是,当我在存储过程的$$内运行它时,它会从我的正则表达式模式中删除反斜杠,从而完全更改正则表达式模式。
我的正则表达式从\.[A-Z]{2,3}
更改为->;.[A-Z]{2,3}
CREATE or replace PROCEDURE TESTING_FUNC_1_THIS_CAN_BE_DELETED()
RETURNS VARCHAR
LANGUAGE javascript
AS
$$
var rs = snowflake.execute( { sqlText:
`
CREATE OR REPLACE VIEW Database.Schema.Table AS
SELECT REXP_REPLACE_ME('APPLE.COM','\.[A-Z]{2,3}',' ') as column_cleaned
-- ,REXP_REPLACE_ME_WTF('APPLE.COM','\.[A-Z]{2,3}',' ') AS WHAT_PATTERN_IS_BEING_OUTPUTTED -- function logic in code block below
`
} );
$$;
call TESTING_FUNC_1_THIS_CAN_BE_DELETED();
select * from Database.Schema.Table
我在这里摸不着头脑,创建了这个函数来显示它输出的是什么模式,这就是我如何得出结论的(我在这里可能是错的。)当Snowflake编译时,它会删除反斜杠.
CREATE OR REPLACE FUNCTION "REXP_REPLACE_ME_WTF"("SUBJECT" VARCHAR(16777216), "PATTERN" VARCHAR(16777216), "REPLACEMENT" VARCHAR(16777216))
RETURNS VARCHAR(16777216)
LANGUAGE JAVASCRIPT
AS '
const p = SUBJECT;
let regex = new RegExp(PATTERN, ''i'');
//return p.replace(regex, REPLACEMENT);
return PATTERN;
';
有什么想法吗?
推荐答案
Snowflake SQL用作转义字符,因此要在Snowflake SQL中表示反斜杠,必须使用\
。
JavaScript还用作转义字符,因此要在JavaScript中表示反斜杠,还必须使用\
如果要通过JavaScript表示Snowflake SQL中的单个反斜杠,则必须发送2 x 2=4个反斜杠\\
这篇关于在过程编译过程中清除雪花反斜杠吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:在过程编译过程中清除雪花反斜杠吗?


猜你喜欢
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- Flexslider 箭头未正确显示 2022-01-01
- 失败的 Canvas 360 jquery 插件 2022-01-01
- addEventListener 在 IE 11 中不起作用 2022-01-01
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- 400或500级别的HTTP响应 2022-01-01
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01
- Fetch API 如何获取响应体? 2022-01-01