snowflake-cloud-data-platform - 尝试创建函数但在将其设置为实际返回类型时获取不兼容的数据类型
问题描述
我正在尝试在我的架构下的 Snowflake 中创建一个简单的函数。它所做的只是查询一个表。
大意是:
CREATE FUNCTION MYNEWFUNCTION (DATE_KEY_INPUT INT)
RETURNS TABLE (COLUMN1 date, COLUMN2 int, COLUMN3 varchar(255) )
as '
SELECT
COLUMN1
,COLUMN2
,COLUMN3
FROM "TABLE"."DBO"."TABLENAME"
where column1 = date_key_input
';
但我收到以下错误:
Declared return type 'VARCHAR(255)' for column 'COLUMN3' is incompatible with actual return type 'VARCHAR(255)'
我迷路了......它与实际数据类型不兼容?我在这里错过了什么......?
原始表中的数据类型是 varchar(255),在函数中我将其设置为 varchar(255) - 为什么会拒绝?
另外我应该注意源是视图而不是表,所以具体来说,我正在尝试创建一个从视图创建表的函数......
解决方案
Snowflake 中的排序规则限制:
目前,排序规则和 UDF(用户定义的函数)并不总是一起工作。例如,您不能从 UDF 返回排序后的字符串值;服务器抱怨实际返回类型与声明的返回类型不兼容。您也不能将整理的字符串值传递给 UDF。
参考:https ://docs.snowflake.com/en/sql-reference/collation.html
推荐阅读
- ios - react-native auth0 用苹果登录?
- python - 拟合统计分布 cdf 函数
- file-upload - 如何使用rest api为用户分配nuxeo中特定文件夹的权限
- c# - 从 C# 返回输出参数
- android - Android生命周期与iOS生命周期比较
- bazel - 我可以在宏的上下文中扩展 glob 吗?
- angular - Angular & Firebase.Firestore:用户的私有和公共集合
- javascript - 未在特定块外定义的变量
- jquery - 如何在表格实时搜索中显示“未找到记录”消息
- react-native - React Native 浮动动画