You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snowflake UDTF如何接受任意小数位数的数值输入?

解决UDTF输入类型不匹配问题

你的问题根源在于函数输入参数的精度限制:原定义x_in number(3, 2)强制要求输入必须是总位数3位、小数位2位的数值类型。当输入变为number(2,1)(比如0.50)时,数据库会严格校验类型精度,触发不匹配错误。

直接修改输入参数的类型即可解决问题,无需用户做强制转换或传字符串:

将输入参数的类型改为不带精度和刻度的number(或numeric,多数数据库中二者等价),这样就能接受任意小数位数、任意总位数的数值输入。

修改后的函数代码:

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

补充说明

  • 不带精度的number类型会自动适配输入的数值精度,不会因为输入的小数位数或总位数变化触发类型错误。
  • 函数返回值的number(4,2)可以保留,数据库会自动将计算结果截断/四舍五入到指定精度,不影响输入的兼容性。

内容的提问来源于stack exchange,提问作者Jay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 18:28:14