从视图中获取数据,并以这种方式检索结果
CREATE OR REPLACE PROCEDURE database.schema.sp_sample(dynamic_columns VARCHAR, dynamic_where_clause VARCHAR)
RETURNS VARCHAR
LANGUAGE JAVASCRIPT
EXECUTE AS CALLER
AS
$$
rs="Success";
try {
retrieve_queries_sql = `SELECT COL_1, COL_2, ${DYNAMIC_COLUMNS} FROM view ${DYNAMIC_WHERE_CLAUSE} GROUP BY COL_1, COL_2, ${DYNAMIC_COLUMNS}`;
var stmt = snowflake.createStatement( {sqlText: retrieve_queries_sql, binds:[DYNAMIC_COLUMNS, DYNAMIC_WHERE_CLAUSE, DYNAMIC_COLUMNS]} );
var rs = stmt.execute();
}
catch(err) {
rs= "Failed Message: "+err.message;
}
return rs;
$$;
CALL "database"."schema"."sp_sample"('COL_3','WHERE COL_3\=\'somevalue\'');
SELECT * FROM TABLE(RESULT_SCAN(LAST_QUERY_ID(-2)));
注意:在这一点上没有要求显示特定于某个用户的数据。同样忽略上面代码中的参数插值部分
是否存在任何数据完整性问题,不同的用户将看不到UI上更新的值(为了提供更多的上下文,从此过程中的视图中提取数据,并且该视图数据在应用程序活动/活动期间不会更改-所有批处理将在用户访问应用程序之前完成)。因此,当用户访问应用程序时,数据已经准备就绪,预计不会对数据进行任何更改
有人建议动态过程会引起数据完整性问题,用户将无法看到更新的数据,为了解决数据完整性问题,预聚合视图(意味着数据在某些级别上预聚合并保存在不同的视图中)将有所帮助,数据一致性将更好。
我想了解预聚合视图的建议如何帮助解决数据完整性问题(首先,为什么会有数据完整性问题),因为过程中所做的是从一个视图中获取数据(动态聚合的),即使在后一种方法中,我们仍然创建许多其他视图(预聚合的),最终在这两种情况下,我们都从视图中获取数据,后一种方法如何不能引起数据完整性问题?
请分享一些反馈,如果提供的观点有任何意义。想知道更好的意见
https://docs.snowflake.com/en/sql-reference/functions/last_query_id.html
https://docs.snowflake.com/en/sql-reference/transactions.html#隔离级别
代码如下:
创建过程GetLastUpdateDate()以$$的形式返回布尔语言javascript
关于如何使用传递的参数的任何线索。
我正在重新设计我们公司的API以使用来自SQL Server的Snowflake。我们的第一个直接障碍是现有的SQL Server存储过程返回表输出,而Snowflake不允许这种类型的输出。我不想完全重新设计一切,所以我在想: null 我知道对于编码来说,使用python这样的东西会容易得多,但是,我不想维护另一个python应用程序,只用于在Snowflake中检索数据。
我是新来的雪花,所以请原谅我。我试图做一件非常简单的事情--通过文字指定列名,但却得到sql编译错误
Snowflake文档指出,VARCHAR列仅限于16 MB未压缩的https://docs.Snowflake.net/manuals/sql-reference/data-types-text.html#data-types-for-text-strings Snowflake文档指出,VARCHAR数据会自动转换为JavaScript字符串数据类型。 https://docs.Snowfla