SQLの終端文字のようなセミコロン。
Oracleではどうやらシステム変数で変更できちゃうみたいだし(デフォルト=セミコロンというだけの話なのねー)、どうやら標準SQLではないというのはなんだか衝撃でした。ものの本では大抵、終端文字然としてSQLの文末には「;」がありますからねー。
で、このセミコロンの話をS師匠と話していたところ、「そうだよ、だから.Netで書くときはパラメーターでイチイチ定義する書き方もやっているんだよ」と云われて、そういえば、DB絡みのクラスを書きはじめた当時、そんなようなことを云われたなー、ということを思い出しました。
アプリを作る際には、SQLのWHERE部分に対して、変数なりで条件を受け渡します。検索画面であったりするなら、テキストボックスで知りたい値を入力するわけですが、その際「0;DELETE FROM TB_USER」とか入力されて、それがまかり通るようなソースを書いていると、あっという間に、システムは逝ってしまうわけですね。こわー。
そういう意味ではSQLの終端文字を受け付けないODBCはある意味、安全ってコト?(うーん、でもODBCとDBの組み合わせによっては終端文字OKな場合もあるのかなー?ありそうな気もするなー)