Stored procedures 在snowflake中,如何从动态查询中删除单引号。反斜杠在这种情况下没有多大用处

Stored procedures 在snowflake中,如何从动态查询中删除单引号。反斜杠在这种情况下没有多大用处,stored-procedures,special-characters,snowflake-cloud-data-platform,Stored Procedures,Special Characters,Snowflake Cloud Data Platform,在snowflake中,如何从动态查询中删除单引号?我在存储过程的异常处理catch块中动态生成一个update语句。我正在将错误消息分配给update语句中的一列。由于错误消息包含单个引号,因此无法正确生成查询 我们不能使用反斜杠转义特殊字符,因为错误消息是动态的 查询如下所示 Update ABCD set error_message = 'string 'In progress' is too long and would be truncated'; 上面的消息“string'In p

在snowflake中,如何从动态查询中删除单引号?我在存储过程的异常处理catch块中动态生成一个update语句。我正在将错误消息分配给update语句中的一列。由于错误消息包含单个引号,因此无法正确生成查询

我们不能使用反斜杠转义特殊字符,因为错误消息是动态的

查询如下所示

Update ABCD set error_message = 'string 'In progress' is too long and would be truncated';

上面的消息“string'In progress'太长,将被截断”正在动态生成,因此我无法使用反斜杠转义单引号。

您可以用双美元符号替换包含的单引号,例如

Update ABCD set error_message = $$string 'In progress' is too long and would be truncated$$;

您的存储过程使用的是什么语言?SQL还是JavaScript?我在雪花存储过程中使用JavaScript您能发布存储过程的JavaScript代码部分吗?在存储过程中插入带有特殊字符(如单引号)的字符串是没有问题的。如果您发布执行插入的代码部分,可能会使问题更加清楚。如果足够短,您可以发布整个存储过程。嗨,Nick,谢谢您的建议。但这不起作用。确切地说,我的更新如下所示。更新ABCD设置错误\u message=result;。结果是一个变量,它导致一个值“string‘In progress’太长,将被截断”。由于变量result在派生值中只有一个引号,因此未正确解析。我尝试将$$附加到变量,但出现语法错误。您好-您是否将$$添加到字符串的开头和结尾?假设您看到了,您看到的语法错误是什么?您确定结果变量不包含起始/结束单引号吗?