【发布时间】:2020-05-18 17:24:40
【问题描述】:
我有一个动态 sql 中的 proc 引发错误。我需要查看 proc 正在运行的 sql 的打印语句。雪花的错误信息不是很有帮助。
这是我的存储过程
CREATE OR REPLACE PROCEDURE util.dbo.Restore_db_ver("source_db" varchar, "restore_db" varchar, "dest_db" varchar)
returns float
LANGUAGE JAVASCRIPT
AS
$$
var perm_cmd = "select cp_object,cp_object_name,cp_permission_type, cp_permission,cp_role from util.dbo.restore_perm where cp_database_name = '"+restore_db+"'"
var perm_cmd_stmt = snowflake.createStatement({sqlText: perm_cmd})
var perm_record = perm_cmd_stmt.execute()
while(perm_record.next())
{var perm_object = perm_record.getColumnValue(1)
var perm_object_name = perm_record.getColumnValue(2)
var perm_permission_type = perm_record.getColumnValue(3)
var perm_permission_name = perm_record.getColumnValue(4)
var perm_role_name = perm_record.getColumnValue(5)
var sql_cmd1 = "CREATE OR REPLACE DATABASE "+restore_db+" CLONE "+source_db+" AT (OFFSET => -1800)"
var statement1 = snowflake.createStatement( {sqlText: sql_cmd1} )
var result_set1 = statement1.execute()
var sql_cmd2 = perm_permission_type+" "+perm_permission_name+" ON "+perm_object+" "+perm_object_name+" TO ROLE "+perm_role_name
var statement2 = snowflake.createStatement( {sqlText: sql_cmd2} )
var result_set2 = statement2.execute()
}
$$
这是抛出一个错误 JavaScript 执行错误:未捕获的 ReferenceError:权限名称未在 'var sql_cmd2 = perm_permission_type+" "+permission_name+" ON "+perm_object+" "+perm_object_name+" TO ROLE "+perm_role_name' 位置 44 位置的 RESTORE_DB_VER 中定义 stackstrace:RESTORE_DB_VER 行:17
有没有打印命令可以用来输出sql?
【问题讨论】:
标签: snowflake-cloud-data-platform