Tech Assist

TECH & LIFE in NAGOYA

名古屋エリアでのフリーランスエンジニアとしての活動記録。

2018年12月21日

OracleのSQL動作確認はSQL*Plusでやりましょう

長いことOracleを使ってる方からしたら当たり前の事なんですが、SQLの動作確認はSQL*Plusでやらないとハマることがあります。
開発でよく使うSQL DeveloperにもSQLを実行して一覧表示する機能があってとても便利なんですが、実はこのツールの実行結果を100%信用しちゃダメなんです。

同じSQLをSQL Developerで実行すると問題なく結果が表示されるのにSQL*Plusで実行するとエラーなんてことがあります。
SQL Developerはとにかく結果を見ることを優先してSQLの構文に寛容に作られているのだと思います。

私もこの事についてはかなり昔から知っていたのですが、今回Laravelのクエリービルダーから発行したSQLがエラーになるのでSQLをダンプしてSQL Developerで確認したら問題ないという現象で30分くらい悩んでしまいました(^^;
理屈を知っていても久々に現象に出くわすと意外と気が付けなかったりするんですよね。。
今回ハマった時も最初はDBファサードのDB::rawって実は素のSQL発行してないんじゃ?なんてアホな方向に疑いをかけてしまいましたw

ハマったら基本に帰る。鉄則ですね。

エンジニアの価値は何で決まるのか     Oracle SQL Developerを使いやすく設定する

関連記事