SQL

Oracle Master Silver

Oracle SQLのCOALESCE完全ガイド:NVLとの違い・使いどころ・落とし穴まで(図解と実行例つき)

結論COALESCE(expr1, expr2, …) は「左から順にNULLでない最初の値」を返す、SQL標準の関数。NVL の上位互換的に使える場面が多く、複数候補をスマートに書ける。ただし 型の暗黙変換・索引(インデックス)利用・空文...
SQL

【Oracle設計実務】索引(インデックス)を作るべき理由と、作りすぎを避けるための設計ポイント

Oracleにおけるパフォーマンス改善といえば「索引(インデックス)」の活用が定番です。しかし現場では以下のような誤解も多く存在します。「WHERE句に出てくる列にはとりあえず全部インデックスを貼れば良い」「遅いならインデックスを増やせば解...
SQL

OracleでDROP操作を安全に制御!

重要なテーブルを誤ってDROPしてしまう…。そんな悲劇を防ぎつつ、操作ログも残したいというニーズに応えるのが「DDLトリガー+自律トランザクション」の組み合わせです。この記事では、ログ記録を別スキーマに逃がす構成でORA-600などのリスク...
SQL

OracleでDELETE操作をブロックするトリガー活用術

重要な業務テーブルに対してうっかり DELETE してしまう…。その一瞬のミスが、取り返しのつかない損失を生むこともあります。本記事では、Oracleのトリガーを用いてDELETE操作を確実にブロックする方法と、UPDATE・INSERTな...
SQL

Oracleトリガー活用術②

前回の記事では、Oracleユーザー USER_A がスキーマ内で利用できるDMLトリガーとBEFORE INSERTトリガーを紹介しました。今回はその続編として、USER_A が作成可能なスキーマレベルの以下の2つのトリガーを紹介します:...
SQL

Oracleトリガーが「コンパイルエラー」で作成された理由とは?

Oracleのトリガーは非常に強力な仕組みですが、構文ミスがあっても「作成されてしまう」ため、油断すると動かないトリガーが放置されることになりがちです。この記事では、実際に遭遇したトリガーのコンパイルエラー(ORA-00920)の原因と、正...
SQL

TO_DATEで時刻が表示されない?時刻フォーマットの指定と表示方法まとめ

Oracleで日付・時刻を扱う際に使われるTO_DATEやTO_TIMESTAMP。これらで時刻を指定したにも関わらず、実行結果に「時刻が表示されない」という経験はありませんか?この記事では、時刻フォーマットの正しい指定方法と「時刻が表示さ...
RMAN/バックアップ・リカバリ

UNTIL句で指定できる「時間」「SCN」「シーケンス」の使い方と確認方法

OracleではRMANやフラッシュバック、SQLの一部機能で時点指定による操作を行うことができます。その際に使われるのが UNTIL 句です。この記事では、UNTIL句で指定可能な以下の3つの形式について詳しく解説します。UNTIL TI...
Oracle Master Silver

Oracleの日付と時刻を取得する関数

Oracle Databaseには、日付や時刻を取得するための便利な関数がいくつか用意されています。本記事では、CURRENT_DATE、CURRENT_TIMESTAMP、LOCALTIMESTAMP、SYSDATE、およびSYSTIME...
Oracle Master Silver

Oracleの日時データ型とタイムゾーンについて

Oracleデータベースは、さまざまな日時データ型を提供しています。これらのデータ型を適切に使用することで、日時データの管理が効率的に行えます。本記事では、DATE、TIMESTAMP、TIMESTAMP WITH TIME ZONE、TI...