Oracle数字格式模型的最大长度



当我将十六进制数转换为十进制数时,在to_numberto_char中使用的X数字格式元素中遇到了一个特殊的限制。

看起来数字格式模型的最大长度为63个字符,但我找不到文档中提到的限制。例如,提到日期时间格式模型的最大长度:

日期时间格式模型的总长度不能超过22个字符。

有63个X es:

SQL> select to_number('A', rpad('X', 63, 'X')) from dual;
TO_NUMBER('A',RPAD('X',63,'X'))
-------------------------------
                             10

具有64个X es:

SQL> select to_number('A', rpad('X', 64, 'X')) from dual;
select to_number('A', rpad('X', 64, 'X')) from dual
                      *
ERROR at line 1:
ORA-01481: invalid number format model

我只尝试了X格式元素,因为它与我当前的任务相关。

问题:

  1. 这是文档中缺少的已知数字格式模型限制吗
  2. 如何将64位(及更长)长度的十六进制数转换为十进制数

这超出了精度数字所能达到的范围。官方文档中的更多信息:http://docs.oracle.com/cd/E16655_01/server.121/e17209/sql_elements001.htm#SQLRF00222

最新更新