Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 值溢出指定的精度0,刻度为0_Java_Apache Drill - Fatal编程技术网

Java 值溢出指定的精度0,刻度为0

Java 值溢出指定的精度0,刻度为0,java,apache-drill,Java,Apache Drill,我正在尝试为ApacheDrill(v1.15)创建自定义功能 当使用十进制作为输出数据类型时,即使使用最简单的示例也会失败。 当使用其他数据类型(int、float..)时,它工作得很好 有没有简单的方法,如何让小数作为UDF的输出 @函数模板( name=“testing_udf”, scope=FunctionTemplate.FunctionScope.SIMPLE, nulls=FunctionTemplate.NullHandling.NULL\u如果为空 ) 公共类Testing

我正在尝试为ApacheDrill(v1.15)创建自定义功能

当使用十进制作为输出数据类型时,即使使用最简单的示例也会失败。 当使用其他数据类型(int、float..)时,它工作得很好

有没有简单的方法,如何让小数作为UDF的输出


@函数模板(
name=“testing_udf”,
scope=FunctionTemplate.FunctionScope.SIMPLE,
nulls=FunctionTemplate.NullHandling.NULL\u如果为空
)
公共类TestingUdfFunction实现DrillSimpleFunc{
@Param
小数点输入;
@输出
小数点后18位;
公共作废设置(){
}
公共无效评估(){
out.precision=input.precision;
out.scale=input.scale;
out.value=input.value;
}
}
SQL调用:

selecttesting\u-udf(6.66);
>验证错误:值7溢出比例为0的指定精度0。

返回十进制数据类型的UDF还应在
@FunctionTemplate
中指定
returnType
,以便能够确定结果的比例和精度。您可以使用
vard
类中的函数实现作为示例