雪花存储过程中每个DML操作的审计或行计数

问题描述 投票:0回答:1

我想捕获存储过程中的Merge and Inserts语句审计,并且我已经尝试通过从Session的QUERY_HISTORY中获取查询ID来使用Result_Scan。但是这些语句在Java Script过程中是不允许的。然后,我创建了用于获取最新执行的SQL查询的查询ID的函数。创建或替换函数GET_QUERY_ID()返回VARCHARAS'SELECT QUID FROM(SELECT(QUERY_ID):: VARCHAR AS QUID FROM TABLE(INFORMATION_SCHEMA.QUERY_HISTORY_BY_SESSION(CURRENT_SESSION():: NUMBER))QUERY_TYPE IN(``INSERT'',``MERGE'')ORDER BY END_TIME DESC )LIMIT 1';

并且尝试为行计数创建另一个函数

创建或替换函数GET_RESULT_SCAN(P_QUERY_ID VARCHAR)返回表(INSERT_ROWS NUMBER,UPDATED_ROWS NUMBER)AS'select * from(从表中选择“已更新的行数” :: NUMBER作为INSERT_ROWS,从表中选择“已更新的多连接行数” :: NUMBER作为UPDATED_ROWS(result_scan(P_QUERY_ID)))']]

但是这不起作用,这些功能我无法在使用JavaScript创建的存储过程中调用。请让我知道最佳实践,以捕获对存储过程中插入和更新的行数的审核。假设一个存储过程中有5-10条SQL语句。

snowflake-datawarehouse dml rowcount
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.