6

16 進数を 10 進数に変換するときに、および で使用されるX 数値形式要素に特有の制限が発生しました。to_numberto_char

数値形式モデルの最大長は 63 文字のようですが、ドキュメントに記載されている制限が見つかりません。たとえば、日時形式モデルの最大長は次のとおりです。

日時形式モデルの全長は 22 文字を超えることはできません。

63 Xes の場合:

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

TO_NUMBER('A',RPAD('X',63,'X'))
-------------------------------
                             10

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

X現在のタスクに関連しているため、フォーマット要素のみを試しました。

質問:

  1. これは、ドキュメントに記載されていない既知の数値形式モデルの制限ですか?
  2. 64 桁 (およびそれ以上) の 16 進数を 10 進数に変換するにはどうすればよいですか?
4

1 に答える 1

2

精度NUMBERの限界を超えています。公式ドキュメントの詳細: http://docs.oracle.com/cd/E16655_01/server.121/e17209/sql_elements001.htm#SQLRF00222

于 2013-08-20T20:50:43.887 に答える