手で流すSQLの記述を、ときどき切り替えたいという場合があります。メンテナンス用にいろいろ用意してあるスクリプトレット、そのうち例えば、
- いつもは前日まで7日分を対象に処理したいが、例外的に期間を指定したくなることもある
そういうとき、スクリプトレットが自分だけのもので単純なものなら書き換える場所はすぐわかりますし簡単ですが、チームで共有していたり複雑だったりすると、どこを書き換えていいか一目でわからなかったり、わかるけどここだけ書き換えればいいのか自信がもてなかったりします。
さてそういうとき、書き換え用のコードを最初からコメントアウトして埋め込んでおいたりしますよね。しません⋯? ええ、しますよね!
その際の小技。コメントアウトを外すとき、先頭と末尾を両方外さないといけないし現行コードの両側にもコメント記号を入れてコメントアウトするという4段階の手間がある面倒さ、その面倒さと操作ミスリスクがブロックコメントと行コメントの組み合わせで解消できます。
between /* date'2024-12-02' --*/ current_date() - interval '7' day
and /* date'2024-12-08' --*/ current_date() - interval '1' day
このコメントアウトは、先頭の /*
をはずすだけで
between date'2024-12-02' --*/ current_date() - interval '7' day
and /* date'2024-12-08' --*/ current_date() - interval '1' day
こう!
手軽かつ安全にコードを切り替えられました。
さて、ブロックコメントと行コメントを組み合わせる書き方はSQLに限らずできるわけです。C系のシンタックスの言語なら
p = /* 3.0 //*/ Math.PI;
みたいに書けるわけですが、ただ、プログラミング言語の場合は動作やパラメータを切り替えるための方法はもっとましなものがいくらでもありますからね。この小技を使う機会があるのはSQLスクリプトレットであることがほとんどなんではないかなと。