H2 数据库中不支持 Oracle 函数“TO_NUMBER”



函数TO_NUMBER在 H2 路线图中为 1.4.x 作为优先级 2。但是在最新版本 1.4.196 中,它仍然不受支持。谁能告诉我,我可以期待什么版本支持此功能?

作为解决方法,请执行此 SQL 以创建函数:

CREATE ALIAS TO_NUMBER AS $$
Long toNumber(String value) {
    return value == null ? null : Long.valueOf(value);
}
$$;

Aaron Digulla提供了一个很好的答案,但不幸的是,它并没有真正涵盖Oracle to_number函数的所有语义。

其中一个极端情况是能够解析像这样的数字 7E+8 . Long.valueOf(value)无法应付这一点。

为了更接近实际实现,我建议使用建议别名的稍微扩展版本:

CREATE ALIAS TO_NUMBER AS '
@CODE
Long toNumber(String value) {
     return value == null ? null : Double.valueOf(value).longValue();
}
'

最新更新