argius note

プログラミング関連

Oracle SQL*Plus NUMBER型の表示桁数を指定

NUMBER型で桁が大きいと、指数表記になります(デフォルトでは>10桁)。

SQL> SELECT 1234567890 FROM DUAL;

1234567890
----------
1234567890

SQL> SELECT 12345678901 FROM DUAL;

12345678901
-----------
 1.2346E+10

NUMWIDTHの値を変更すると、指数表記にしないサイズを変更できます。

SQL> SHOW NUMWIDTH
numwidth 10
SQL> SET NUMWIDTH 11
SQL> SELECT 12345678901 FROM DUAL;

12345678901
-----------
12345678901

設定名は省略できます。"NUMW[IDTH]"は、"NUMW"でも"NUMWI"でもOKです。(他にも"PAGESIZE"は"PAGES"など。詳細は上記リンク先をご覧ください。)


おまけ:NUMFORMATというのもあります。

SQL> SHOW NUMFORMAT
numformat ""
SQL> SET NUMFORMAT "999,999,999"
SQL> SELECT 123456 FROM DUAL;

  123456
--------
 123,456

SQL> SELECT 123456 FROM DUAL;

   123456789
------------
 123,456,789

SQL> SELECT 1234567890 FROM DUAL;

  1234567890
------------
############

SQL>