lea*_*tle 6 snowflake-cloud-data-platform
我正在尝试使用 Snowflake 存储过程,并希望将下面存储过程中的 SQL 语句打印到屏幕上。
CREATE OR REPLACE PROCEDURE read_western_provinces()
RETURNS VARCHAR NOT NULL
LANGUAGE JAVASCRIPT
AS
$$
var return_value = "";
try {
var command = "SELECT * FROM western_provinces ORDER BY province;"
var stmt = snowflake.createStatement( {sqlText: command } );
var rs = stmt.execute();
if (rs.next()) {
return_value += rs.getColumnValue(1);
return_value += ", " + rs.getColumnValue(2);
}
while (rs.next()) {
return_value += "\n";
return_value += rs.getColumnValue(1);
return_value += ", " + rs.getColumnValue(2);
}
}
catch (err) {
result = "Failed: Code: " + err.code + "\n State: " + err.state;
result += "\n Message: " + err.message;
result += "\nStack Trace:\n" + err.stackTraceTxt;
}
return return_value;
$$
;Run Code Online (Sandbox Code Playgroud)
每当执行存储过程时,如何将命令变量(包含 SQL)的值打印到屏幕上?
谢谢
我还没有找到一种方法来做到这一点,但至少有一些选择可以接近。
您可以返回一个变体,而不是使用数组或类似的调试输出
return { "output":return_value, "debug":result }
Run Code Online (Sandbox Code Playgroud)使用一个过程来复制类似的东西。请参阅雪花社区的类似帖子:https://community.snowflake.com/s/question/0D50Z00009Uu3cTSAR/debugging-procedures-technicques-print-std-out-etc)
| 归档时间: |
|
| 查看次数: |
24593 次 |
| 最近记录: |