Snowflake UDF 接受任意数量的小数位

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

我有一个 UDTF,在今天之前运行良好,但现在类型不匹配:

Create or replace function my_func(x_in number(3, 2)) 
Returns table(
    X_out number(4, 2),
    Y_out number(4, 2)
)
As 
$$
    Select 
        a * x_in,
        b
    From my_table
$$
;

旧值为 0.55,现已更改为 0.50。现在,我收到“number(2, 1)”类型输入的数据类型不匹配错误。

输入值有可能会达到小数点后 3 位或小数点后 1 位,就像现在一样。有没有一种方法可以接受具有任意小数点的数字,而不必将输入转换为特定的数字格式或强制用户将字符串传递给我从那里转换的函数?

sql snowflake-cloud-data-platform user-defined-functions
1个回答
0
投票

您可以使用

FLOAT
数据类型来代替指定小数点。 参考

精度约为 15 位数字。

Create or replace function my_func(x_in FLOAT) 
Returns table(
    X_out number(4, 2),
    Y_out number(4, 2)
)
As 
$$
    Select 
        a * x_in,
        b
    From my_table
$$
;

例如。 enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.