javascript 使用雪花SQL存储过程的动态SQL

zengzsys  于 2022-11-20  发布在  Java
关注(0)|答案(1)|浏览(129)

我希望能够更新一组表列表中的数据行,以更新这些表中的某些列。
基本上是这样的;

TABLE_NAME    COL1     
TABLE1        NAME     
TABLE2        ADDRESS 

select * from TABLE1;

Aidan

Select * from TABLE2;

Ireland

因此,下面的查询类似于一个存储过程,它将收集所有要更改的表和列,并相应地更新记录。
update $TABLE_NAME set $COL1 ='*' where ID in (select ID FROM EXTERNAL_TABLE)
任何帮助都不胜感激。
我试着修改这个示例,但是当我尝试在其上构建时却一无所获

CREATE OR REPLACE PROCEDURE DATA_MASKING("P_TABLE_NAME" VARCHAR(16777216))
RETURNS VARCHAR(16777216)
LANGUAGE JAVASCRIPT
EXECUTE AS OWNER
AS '
// Define query String
var sql_command = "UPDATE " + P_TABLE_NAME + " SET IND_ADDR1 = NULL;"

//Prepare SQL statement

var stmt = snowflake.createStatement({sqlText: sql_command});

//Execute SQL Statement   
var rs = stmt.execute();
return ''Table truncated successfully.''

';

call PERSISTENT_DATA_MASKING('TEST_TABLE');
qoefvg9y

qoefvg9y1#

你 给 的 程序 起 作用 了 。 只是 需要 一些 修正 , 你 一定 能 做到 。 所以 , 不 知道 到底 是 什么 问题 。

CREATE OR REPLACE PROCEDURE DATA_MASKING("P_TABLE_NAME" VARCHAR(16777216), "P_COLUMN_NAME" VARCHAR(16777216))
RETURNS VARCHAR(16777216)
LANGUAGE JAVASCRIPT
EXECUTE AS OWNER
AS '
// Define query String
var sql_command = "UPDATE " + P_TABLE_NAME + " SET " + P_COLUMN_NAME + " = ''x'';"

//Prepare SQL statement

var stmt = snowflake.createStatement({sqlText: sql_command});

//Execute SQL Statement   
var rs = stmt.execute();
return ''successful''

';
CALL DATA_MASKING('SCHEMA.TABLE_NAME','COLUMN_NAME');
SELECT * FROM SCHEMA.TABLE_NAME;

中 的 每 一 个

相关问题