snowflake 创建存储过程以通过参数化列名称从 table 插入数据
snowflake create stored procedure to insert data from a table by parametrizing column names
我有一个如下所示的存储过程。我想对列名进行参数化,以便它可以重复使用。
CREATE OR REPLACE PROCEDURE NEW()
RETURNS string
LANGUAGE JAVASCRIPT
AS
$$
let sql_command = `insert into TABLE_NEW
(ADR_LN_1,ADR_LN_2)
select
ADR_LN_1,ADR_LN_2
from TABLE_OLD`;
snowflake.execute({sqlText: sql_command});
return 'success';
$$;
call NEW();
我尝试了以下查询,但它不起作用
CREATE OR REPLACE PROCEDURE NEW(COL1 VARCHAR, COL2 VARCHAR)
RETURNS string
LANGUAGE JAVASCRIPT
AS
$$
let sql_command = `insert into TABLE_NEW
(COL1,COL2)
select
COL1,COL2
from TABLE_OLD`;
snowflake.execute({sqlText: sql_command});
return 'success';
$$;
call NEW('ADR_LN_1','ADR_LN_2');
您缺少 ${}
让 JS 字符串模板工作:
CREATE OR REPLACE PROCEDURE NEW(COL1 VARCHAR, COL2 VARCHAR)
RETURNS string
LANGUAGE JAVASCRIPT
AS
$$
let sql_command = `insert into TABLE_NEW
(${COL1},${COL2})
select
${COL1},${COL2}
from TABLE_OLD`;
snowflake.execute({sqlText: sql_command});
return 'success';
$$;
call NEW('ADR_LN_1','ADR_LN_2');
我有一个如下所示的存储过程。我想对列名进行参数化,以便它可以重复使用。
CREATE OR REPLACE PROCEDURE NEW()
RETURNS string
LANGUAGE JAVASCRIPT
AS
$$
let sql_command = `insert into TABLE_NEW
(ADR_LN_1,ADR_LN_2)
select
ADR_LN_1,ADR_LN_2
from TABLE_OLD`;
snowflake.execute({sqlText: sql_command});
return 'success';
$$;
call NEW();
我尝试了以下查询,但它不起作用
CREATE OR REPLACE PROCEDURE NEW(COL1 VARCHAR, COL2 VARCHAR)
RETURNS string
LANGUAGE JAVASCRIPT
AS
$$
let sql_command = `insert into TABLE_NEW
(COL1,COL2)
select
COL1,COL2
from TABLE_OLD`;
snowflake.execute({sqlText: sql_command});
return 'success';
$$;
call NEW('ADR_LN_1','ADR_LN_2');
您缺少 ${}
让 JS 字符串模板工作:
CREATE OR REPLACE PROCEDURE NEW(COL1 VARCHAR, COL2 VARCHAR)
RETURNS string
LANGUAGE JAVASCRIPT
AS
$$
let sql_command = `insert into TABLE_NEW
(${COL1},${COL2})
select
${COL1},${COL2}
from TABLE_OLD`;
snowflake.execute({sqlText: sql_command});
return 'success';
$$;
call NEW('ADR_LN_1','ADR_LN_2');