Snowflake SQL compilation error: error line 1 at position 55 N"'TEST'"

Snowflake SQL compilation error: error line 1 at position 55 N"'TEST'"

刚开始使用 SnowFlake 并在制作基本的雪花插入生成器过程时遇到问题,如果调用时插入参数是使用“''”处理的,则会出错。在下面的例子中。 SQL compilation error: error line 1 at position 55 N"'TEST'"

程序:

CREATE OR REPLACE PROCEDURE "INSERTTABLECOLUMNS"("TABLENAME" VARCHAR(250), "INSERTCOLUMNS" VARCHAR(250), "INSERTVALUES" VARCHAR(250))
    RETURNS VARCHAR()
    LANGUAGE JAVASCRIPT
    AS
    $$
    var command = "INSERT INTO "+TABLENAME+" ("+INSERTCOLUMNS+") VALUES ("+INSERTVALUES+")";  
    var cmd1_dict = {sqlText: command};  
    var stmt = snowflake.createStatement(cmd1_dict);  
    var rs = stmt.execute();  
    return "Works";  
    $$;

召唤

call DEMO.PUBLIC.INSERTTABLECOLUMNS('TESTBEGIN','NAME',"'TEST'")
call DEMO.PUBLIC.INSERTTABLECOLUMNS('TESTBEGIN','NAME,COLUMN2',"'TEST',2")

例如,当您的 table/column 名称中有异常字符时,双引号主要用于表示对象名称。

我想你想要的是转义你的 ' 字符。您可以使用双撇号:'' 或反斜杠:\' .

call DEMO.PUBLIC.INSERTTABLECOLUMNS('TESTBEGIN','NAME','''TEST''')
call DEMO.PUBLIC.INSERTTABLECOLUMNS('TESTBEGIN','NAME,COLUMN2','''TEST'',2')

call DEMO.PUBLIC.INSERTTABLECOLUMNS('TESTBEGIN','NAME','\'TEST\'')
call DEMO.PUBLIC.INSERTTABLECOLUMNS('TESTBEGIN','NAME,COLUMN2','\'TEST\',2')