Хранимая процедура SnowFlake для удаления строки из таблицы на основе условия

#javascript #sql #stored-procedures #snowflake-cloud-data-platform

#javascript #sql #хранимые процедуры #snowflake-cloud-data-platform

Вопрос:

Я удаляю строку из таблицы на основе условия where, но я не понимаю, где я ошибаюсь

У меня есть таблица TABLE1 следующим образом

 -------------------------------
|  DB |  SC  |  TB  | COLUMNS |
-------------------------------
| DB1 |  SC1 |  TB1 |   COL1  |
| DB2 |  SC2 |  TB2 |   COL2  | <-- Delete this row
| DB3 |  SC3 |  TB3 |   COL3  |
-------------------------------
  

Вот моя хранимая процедура

  CREATE OR REPLACE PROCEDURE DEL(COL VARCHAR) // taking column name as parameter to delete that row
        RETURNS string
        LANGUAGE JAVASCRIPT
        AS
        $$
            var str = '';
            var stmt = snowflake.createStatement({sqlText: "DELETE FROM DATA_QUALIT WHERE COLUMNS =  COL ";"});
            stmt.execute(); 
            return str;     
        $$;

    CALL DEL('COL2');  //Calling the procedure
  

Но я получаю сообщение об ошибке

 Execution error in store procedure DEL: SQL compilation error: error line 1 at position 40 invalid identifier 'COL2'
  

Ответ №1:

Я полагаю, что вам просто не хватает одинарных кавычек вокруг значения:

 var stmt = snowflake.createStatement({sqlText: "DELETE FROM DATA_QUALIT WHERE COLUMNS = '"   COL  "';"});