【发布时间】:2020-03-17 14:18:22
【问题描述】:
是否可以在 Snowflake dwh 中检索 SQL 查询结果并将其作为变量传递给同一过程中的下一个查询?
我正在尝试 %ROWCOUNT, CURSOR 大小写,但遇到以下问题:
创建或替换过程 PASS_VAR_IN_JS() 返回 VARCHAR 语言 javascript 作为 $$ var command = "SELECT * FROM TABLE WHERE ATTRIBUTE = 'Value'"; var stmt = snowflake.createStatement( {sqlText: command} ); var result1 = stmt.execute(); 返回结果1.getColumnName(3); //这会返回列名 var col_name = result1.getColumnName(3); //将列名保存到变量中 //将列名传递给查询 var stmt = snowflake.createStatement({sqlText: "SELECT * FROM INFORMATION_SCHEMA WHERE COLUMN_NAME = ;", binds:[col_name]}); $$;UPDATE - working code that passes one result to another query
<pre>
CREATE OR REPLACE PROCEDURE szpotma_rowcount()
RETURNS VARCHAR(250)
LANGUAGE JAVASCRIPT
as
$$
var command = `SELECT ATTR1 FROM TABLE1 LIMIT 1`;
var stmt = snowflake.createStatement( {sqlText: command} );
var rs = stmt.execute(), col_name ;
if (rs.next()) {
col_name = rs.getColumnValue(1);
stmt = snowflake.createStatement({
sqlText: `SELECT STATUS FROM TABLE_STATUS WHERE ATTR1 = :1`, binds: [col_name]});
//view second query results
rs = stmt.execute();
rs.next()
return rs.getColumnValue(1);
}
$$
【问题讨论】:
标签: javascript sql procedure snowflake-cloud-data-platform