【Oracle】NVL関数で数値から文字列にしようとするとOracleエラーが発生する

自宅PCにOracle無償版入れようか迷う。

サクッとOracleにSQL投げられる環境が欲しいです。
主に動作確認するだけだけど。

タイトルの通り、
数値項目に対してNVL関数を噛ませるとOracleエラーが発生します。
調べてみたら、NVL関数に渡される引数で処理を分けているらしいです。(知らなかった)
下記のリンク先でも書かれていますが、C#やJavaで言うオーバーロードなのかな。

irof.hateblo.jp

ちなみに、
SQLとPL/SQLで発生するエラーが異なります。

SQLの場合
SELECT NVL(123, 'NULLでした') FROM DUAL;

ORA-01722: 数値が無効です。

エラー内容を確認するだけなので、
上記の例ではNVL関数の第一引数に数値を直接渡しています。

PL/SQLの場合
DECLARE
    WK_STR  VARCHAR2(20);
BEGIN
    WK_STR  := NVL(123, 'NULLでした');
END;
/

ORA-06502: PL/SQL: 数値または値のエラー:文字から数値への変換エラー。が発生しました
おわりに

今日はコレで地味に時間がとられた…
単純だからこそメモっとかないとまた引っ掛かりそうなのでメモ。

今日はこの辺で。