#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 "';"});