Tag Archives: sql

[ Oracle PL/SQL ] バインド変数を使用してセキュアに SQL を実行する

C# や Java などのプログラムから SQL を実行するときはバインド変数を使用して SQL インジェクション対策を行い、データを守るようにすることが一般的だと思いますが、Oracle データベース上で実行される PL / SQL から SQL を発行するときも同様です。Oracle が勝手に対策してくれるわけではありません。

Continue reading »

[ MySQL ] n分前, n時間前, n日後の日付を取得する ( INTERVAL )

データベースに限った話ではありませんが、10分前の時刻や、1か月後の日付などを求める機会は多くあります。MySQL では、四則演算のプラス・マイナス記号を使って直感的な SQL を記述して過去や未来の日時を取得することができます。

Continue reading »

[ ODP.NET ] Oracle へ接続し SQL を発行する (OracleConnection / OracleCommand)

ODP.NET を使用して、SQL を発行するサンプルです。通常、よく使用するのは select / insert / update / delete 文 だと思いますが。大きく分けて結果が返される select 文と、結果が返されない insert / update / delete 文では SQL の発行方法が異なります。

Continue reading »

[ Oracle SQL ] if 文や switch 文 ( CASE ~ WHEN ) を使って条件分岐を行う

一般的なプログラムで使われる if 文を SQL で記述するには CASE ~ WHEN を使用します。ここで掲載しているサンプルは Oracle で動作確認を行っていますが、MySQL や Postgres など他のデータベースでも動作するかもしません。

「安心してください。確認していません。」

Continue reading »

[ Oracle ] 『ORA-00918: 列の定義が未確定です』 が発生するケース

ちょいちょい登場するこのエラーですが、どのような場合に出力されるか簡単なサンプルになります。SQL を正しく理解していれば原因の特定は比較的容易だと思われます。

「ORA-00918: 列の定義が未確定です。」は以下のような場合に発生します。言葉が堅苦しいのでわかりにくいですが、エラーメッセージそのものです。

Continue reading »