Snowflake存储过程传入WHERE子句转义字符报错求助
Snowflake存储过程WHERE子句参数的正确转义方式
正确的CALL语句
CALL "USER_SANDBOX"."TRY".dummy('substring(last_date,1,10)=''2022-12-15'' and tags=''[Same_Slice_01]'' and project=''Health''')
错误原因说明
- 你之前错误地对括号
()、等号=使用反斜杠\转义,这是多余的——Snowflake字符串参数中这些符号无需转义。 - 唯一需要处理的是字符串内部的单引号
',正确的转义规则是用**两个连续的单引号''**代替单个单引号,而非反斜杠。
重要安全提示
注意:直接拼接完整WHERE子句到动态SQL的方式存在SQL注入风险。如果业务允许,建议拆分筛选条件为独立参数并使用绑定变量;若必须传入完整WHERE子句,务必对输入内容做严格的合法性校验,防范恶意注入。
内容的提问来源于stack exchange,提问作者Abasesha
相关产品推荐
相关产品推荐

