テーブル

Oracle Master Bronze

別の表からデータを移行INSERT … SELECT解説

Oracle で別の表を参照してデータを一度に移す・加工して取り込むなら insert select を使用すると便利です。本記事では select insert の正しい書き方、性能チューニング、ロックとログの注意点を、Oracle Da...
Oracle Master Bronze

Oracle SQL INSERT 徹底解説

データベースに新しい行(レコード)を入れる基本操作が oracle insert です。本記事では insert oracle の正しい使い方を、やさしい言葉と“そのまま動く実行例”で解説します。ユーザー作成 → 表(テーブル)作成 → I...
オプティマイザ統計情報/実行計画

索引(インデックス)のメンテナンス方法まとめ

Oracleデータベースで性能を維持するうえで、索引の定期的なメンテナンスは非常に重要です。索引は検索性能を高める一方、以下のような課題を持っています。✅ 更新による断片化✅ 統計情報の陳腐化✅ 不要な索引の放置この記事では、Oracleに...
SQL

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

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

【Oracle実務設計】なぜテーブル名・列名・データにマルチバイト文字を使うべきではないのか

Oracleデータベースを使って業務システムを設計する際、こんな疑問を持ったことはありませんか?「テーブル名や列名に日本語を使えば、内容がわかりやすくなるのでは?」「商品名や売上履歴など、日本語のまま使えた方が親切では?」実際、Oracle...
テーブル

Oracle トリガーの有効化・無効化と確認方法

Oracleで業務データを守るために活用されるトリガー(Trigger)。しかし、開発やメンテナンス中に一時的に無効化したい場面もあります。本記事では、トリガーの無効化・再有効化の方法に加え、有効/無効の状態確認方法(DBA_TRIGGER...
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)の原因と、正...
テーブル

Oracleトリガー活用術①

Oracleには「トリガー(Trigger)」という便利な仕組みがあります。トリガーを使えば、INSERTやUPDATEなどの操作に対して、自動的に処理を実行することができます。この記事では、Oracleユーザー USER_A が自分のスキ...
undo

Oracle Databaseに関してよくある誤った認識3選

~その理解、本当に正しいですか?~Oracle Database(以下、オラクル)は高性能・高信頼な商用RDBMSとして、企業を中心に広く利用されています。しかしその反面、仕様や操作に関して誤った認識を持ったまま運用されているケースも少なく...
Oracle Master Gold

フラッシュバック・データベースで誤操作からテーブルを復旧する手順

Oracleの「フラッシュバック・データベース」機能を使えば、うっかり削除してしまったテーブルも巻き戻して復旧できます。本記事では、テーブル作成→誤操作(DROP)→フラッシュバックによる復旧という一連の流れを、SCN指定・時刻指定の両方で...
Oracle Master Gold

Oracle フラッシュバック・ドロップ:削除した表を「ゴミ箱」から救い出す魔法のコマンド

Oracle Databaseを運用していて、最も冷や汗をかく瞬間の一つが「大事な表を誤ってDROPしてしまった」ときです。しかし、Oracleにはフラッシュバック・ドロップ(Flashback Drop)という強力な救済機能が備わっていま...
Oracle Master Gold

SCNで時間を巻き戻す!Oracleフラッシュバック表(FLASHBACK TABLE)活用ガイド

Oracle Databaseを運用していると、「誤って大事なレコードを削除してコミットしてしまった…」という事態に遭遇することがあります。バックアップからのリストアは大掛かりですが、フラッシュバック表(FLASHBACK TABLE)機能...
Oracle Master Gold

Oracle RMANによるテーブル単位のリカバリのやり方

誤ってテーブルを削除(DROP)してしまった際、バックアップ全体を戻さずに特定の表だけを復元したいことがあります。本記事では Oracle RMAN を使用し、oracle sqlplus 等で確認した SCN を指定してテーブルを復旧する...
Oracle Master Silver

Oracle 一時表 (GTT) の作成・削除と使い分けのコツ

Oracle 一時表は、セッション内でのみデータを保持し、処理終了後に自動削除される便利な機能です。特に「Oracle グローバル一時表(GTT)」は、複雑なバッチ処理の中間データ保持に多用されます。本記事では 19c を前提に、実装手順や...
Oracle Master Silver

Oracle DROP TABLEとフラッシュバックドロップ:削除した表を復元する方法

データベース管理において、「誤って重要な表を DROP TABLE で削除してしまった」というミスは、冷や汗が出る瞬間です。しかし、Oracle Database には、Windows や Mac の「ごみ箱」のように、削除した表を一時的に...
Oracle Master Silver

Oracle 表を読み取り専用にする方法と移動手順【ALTER TABLE】

Oracle Databaseの運用において、マスタデータの誤更新を防ぎたい、あるいはディスク容量の都合でテーブルを別の場所へ移したい場面は頻繁に訪れます。本記事では、Oracle 表 読み取り専用モードへの変更方法と、表領域間でのOrac...
Oracle Master Silver

列の未使用化とそのメリット、および領域開放の方法

Oracleデータベースでは、テーブルから不要になった列を直接削除するのではなく、まず「未使用化(Unused)」することが可能です。この機能を利用することで、列を即座に利用不能にし、パフォーマンスへの影響を最小限に抑えることができます。本...