使用存储过程更新雪花 table 的列

Updating a column of a snowflake table using stored procedure

我正在雪花中创建一个存储过程。我想用值 'ZZ' 更新 EMPLOYEE table 的 ORG_ID 列。这是我的代码,不是我哪里错了。

CREATE OR REPLACE PROCEDURE NEW(VAL VARCHAR)
    RETURNS string
    LANGUAGE JAVASCRIPT
    AS
    $$      
                          
        let sql_command = `update EMPLOYEE set ORG_ID = ${VAL}`;
        snowflake.execute({sqlText: sql_command});

    return 'success';
    $$;
    
call NEW('ZZ');

应绑定变量:

CREATE OR REPLACE PROCEDURE NEW(VAL VARCHAR)
    RETURNS string
    LANGUAGE JAVASCRIPT
    AS
    $$      
                          
        let sql_command = `update EMPLOYEE set ORG_ID = :1`;
        snowflake.execute({sqlText: sql_command, binds: [VAL]});

    return 'success';
    $$;

相关:Binding Variables


也可以使用字符串插值,但很容易出现 SQL 注入:

let sql_command = `update EMPLOYEE set ORG_ID = '${VAL}'`;