PL/SQL で文字列を数値に変換する TO_NUMBER、何通りか引数を与えてみました。

まず、TO_NUMBERですが、TO_NUMBER(’20’) の様に文字列を渡すことで数値型(NUMBER)の 20 が得られる関数です。これに何通りか引数を与えてみました。

  • TO_NUMBER(NULL) とNULLを引数に与えてみました。
    • 結果はNULLでした。
  • TO_NUMBER(”) と空文字列を引数に与えてみました。
    • 結果はNULLでした。
  • TO_NUMBER(‘A’) と数値に変換できない値を与えてみました。
    • 結果は「ORA-01722: 数値が無効です。」と例外が発生しました。
  • TO_NUMBER(‘  3  ‘) と数値の前後に半角スペースをいれてみました。
    • 結果は 3 と、前後のスペースを無視した結果が得られました。
  • TO_NUMBER(‘3 3’) と数値の間にスペースをいれてみました。
    • 結果は「ORA-01722: 数値が無効です。」と例外が発生しました。

半角スペースや空文字に対して柔軟に対応してくれる様でした。