Oracle数字格式模型最大长度

use*_*735 6 sql oracle oracle11g

我碰上以一种特殊的限制X 数字格式元件中使用的to_number和在to_char当我转换十六进制数成十进制数.

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

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

63 Xes:

SQL> select to_number('A', rpad('X', 63, 'X')) from dual;

TO_NUMBER('A',RPAD('X',63,'X'))
-------------------------------
                             10
Run Code Online (Sandbox Code Playgroud)

64 Xes:

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
Run Code Online (Sandbox Code Playgroud)

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

问题:

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

igr*_*igr 2

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

  • @user272735 绝对值是不同的东西。有效数字的最大数量为“精度”,并且“数字”的[限制为 39 或 40 个小数位](http://docs.oracle.com/cd/E16655_01/server.121/e17209/sql_elements001.htm#SQLRF00222)数据类型。 (2认同)