自宅PCにOracle無償版入れようか迷う。
サクッとOracleにSQL投げられる環境が欲しいです。
主に動作確認するだけだけど。
タイトルの通り、
数値項目に対してNVL関数を噛ませるとOracleエラーが発生します。
調べてみたら、NVL関数に渡される引数で処理を分けているらしいです。(知らなかった)
下記のリンク先でも書かれていますが、C#やJavaで言うオーバーロードなのかな。
ちなみに、
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: 数値または値のエラー:文字から数値への変換エラー。が発生しました
おわりに
今日はコレで地味に時間がとられた…
単純だからこそメモっとかないとまた引っ掛かりそうなのでメモ。
今日はこの辺で。