Oracle

Oracle

【Oracle】データベースリンク(DATABASE LINK)完全ガイド|CREATE DATABASE LINK・リモート DB 参照・分散クエリ・管理方法まで解説

Oracle のデータベースリンク(DATABASE LINK)を完全解説。CREATE DATABASE LINK でリモート DB への接続を定義する方法・@リンク名 でリモートテーブル・ビュー・プロシージャを参照する方法・パブリックリンクとプライベートリンクの違い・FIXED USER(固定ユーザー)と CONNECTED USER(現在のユーザー)の認証方式の違い・分散クエリ・分散トランザクション(2フェーズコミット)の注意点・ALL_DB_LINKS / USER_DB_LINKS でデータベースリンクを確認する方法・ORA-02085・ORA-01017 などの接続エラーと対処法まで解説します。
Oracle

【Oracle】ネットワーク設定完全ガイド|tnsnames.ora・listener.ora・sqlnet.ora・lsnrctl・Easy Connect の設定と確認方法まで解説

Oracle のネットワーク設定(Oracle Net)を完全解説。tnsnames.ora でサービス名を設定する方法・listener.ora でリスナーを設定する方法・sqlnet.ora でタイムアウトとセキュリティを設定する方法・lsnrctl start / status / stop でリスナーを管理する方法・Easy Connect(//ホスト:ポート/サービス名)で tnsnames.ora なしで接続する方法・TNS-12541・TNS-12170・ORA-12560 などのよくある接続エラーと対処法まで解説します。
Oracle

【Oracle】トリガー(TRIGGER)完全ガイド|DML トリガー・DDL トリガー・INSTEAD OF トリガー・有効化・無効化まで解説

Oracle のトリガー(Trigger)を完全解説。BEFORE / AFTER トリガーと行レベル / 文レベルトリガーの違い・:NEW と :OLD 疑似レコードを使った変更前後の値の取得・REFERENCING で疑似レコードの別名を定義する方法・WHEN 句で特定条件のみトリガーを発火させる方法・INSERT / UPDATE / DELETE の複数イベントを1つのトリガーで処理する方法・ビューに対する INSTEAD OF トリガーの使い方・DDL トリガー(CREATE / DROP / ALTER の監査)・ALTER TRIGGER DISABLE / ENABLE でトリガーを有効化・無効化する方法まで解説します。
Oracle

【Oracle】シーケンス(SEQUENCE)完全ガイド|CREATE SEQUENCE・NEXTVAL・CURRVAL・CACHE・CYCLE・Oracle 12c 以降の IDENTITY 列まで解説

Oracle のシーケンス(SEQUENCE)を完全解説。CREATE SEQUENCE でシーケンスを作成する方法(INCREMENT BY・START WITH・MAXVALUE・MINVALUE)・NEXTVAL と CURRVAL の使い方・DEFAULT NEXTVAL でデフォルト値に使う方法・CACHE(キャッシュ)・NOCACHE・CYCLE・NOCYCLE・ORDER・NOORDER の違い・INSERT 時に NEXTVAL を使う方法・INSERT ALL での注意点・ギャップ(欠番)が発生する理由とギャップが許容できないケースへの対処・Oracle 12c 以降の IDENTITY 列(GENERATED ALWAYS / BY DEFAULT)まで解説します。
Oracle

【Oracle】ユーザー・権限・ロール完全ガイド|CREATE USER・GRANT・REVOKE・システム権限・オブジェクト権限・ロール管理まで解説

Oracle のユーザー管理・権限管理・ロール管理を完全解説。CREATE USER でユーザーを作成する方法(パスワード・デフォルト表領域・一時表領域・クォータ)・システム権限(CREATE SESSION・CREATE TABLE・DBA など)とオブジェクト権限(SELECT・INSERT・EXECUTE など)の違いと GRANT / REVOKE の使い方・CREATE ROLE でカスタムロールを作成して権限を一括管理する方法・WITH ADMIN OPTION / WITH GRANT OPTION の違い・DBA_SYS_PRIVS / DBA_TAB_PRIVS / DBA_ROLE_PRIVS で付与済み権限を確認する方法まで解説します。
Oracle

【Oracle】表領域(Tablespace)完全ガイド|CREATE TABLESPACE・DATAFILE 追加・自動拡張・容量確認・UNDO/TEMP 管理まで解説

Oracle の表領域(Tablespace)管理を完全解説。CREATE TABLESPACE で永続表領域を作成する方法・ALTER TABLESPACE ADD DATAFILE でデータファイルを追加する方法・AUTOEXTEND ON で自動拡張を設定する方法・DBA_TABLESPACES / DBA_DATA_FILES / DBA_FREE_SPACE で容量を確認する方法・UNDO 表領域(UNDO_TABLESPACE パラメータ)と TEMP 表領域の管理・ORA-01536(quota exceeded)・ORA-01658(unable to create INITIAL extent)・ALTER USER QUOTA でユーザーの使用容量を制限する方法まで実例で解説します。
Oracle

【Oracle】Data Pump(expdp / impdp)完全ガイド|エクスポート・インポート・スキーマ移行・よく使うパラメータまで解説

Oracle Data Pump(expdp / impdp)を完全解説。DIRECTORY オブジェクトの作成・expdp でスキーマ / テーブル / データベース全体をエクスポートする方法・QUERY でフィルタリング・EXCLUDE / INCLUDE で対象オブジェクトを絞る方法・impdp で REMAP_SCHEMA / REMAP_TABLESPACE を使ったスキーマ移行・TABLE_EXISTS_ACTION(SKIP / REPLACE / APPEND / TRUNCATE)の使い分け・NETWORK_LINK で DB 間を直接転送する方法・V$SESSION_LONGOPS / DBA_DATAPUMP_JOBS でジョブの進捗を監視する方法まで実例で解説します。
Oracle

【Oracle】SQL*Plus 完全ガイド|SET コマンド・SPOOL・スクリプト変数・よく使うコマンドまで解説

Oracle SQL*Plus を完全解説。SQL*Plus での接続方法(Easy Connect / TNS 名 / OS 認証)・SET コマンドによる表示設定(PAGESIZE・LINESIZE・FEEDBACK・TIMING・SERVEROUTPUT)・SPOOL でクエリ結果をファイルに出力する方法・変数(DEFINE / ACCEPT / バインド変数)とスクリプトへの引数渡し(&1 / &&)・glogin.sql / login.sql で環境を自動設定する方法・@・@@・START コマンドでスクリプトを実行する方法・WHENEVER SQLERROR / OSERROR でエラー処理をする方法まで実例で解説します。
Oracle

【Oracle】ヒストグラム完全ガイド|オプティマイザ統計のヒストグラム種類・偏りデータへの効果・管理方法まで解説

Oracle のオプティマイザ統計におけるヒストグラム(Histogram)を完全解説。ヒストグラムが必要な理由(データの偏りとカーディナリティ推定の誤り)・Frequency ヒストグラム・Height-Balanced ヒストグラム・Top-Frequency ヒストグラム・Hybrid ヒストグラムの違い(12c 以降)・DBMS_STATS.GATHER_TABLE_STATS の METHOD_OPT でヒストグラムを収集する方法・USER_HISTOGRAMS / USER_TAB_COL_STATISTICS でヒストグラムを確認する方法・ヒストグラムが原因の実行計画の崩れとバインドピーキングの問題まで実例で解説します。
Oracle

【Oracle】ORA-00955 完全ガイド|name is already used by an existing object の原因・解決・OR REPLACE の使い方まで解説

Oracle の ORA-00955(name is already used by an existing object)エラーを完全解説。ORA-00955 が発生する原因(CREATE TABLE / VIEW / SEQUENCE / SYNONYM の重複)・CREATE OR REPLACE で既存オブジェクトを安全に置き換える方法・ALL_OBJECTS / USER_OBJECTS で既存のオブジェクト名を確認する方法・テーブルとシノニム・ビューと同名のオブジェクトが競合するパターン・削除後に再作成する手順と注意点まで実例で解説します。
Oracle

【Oracle】ORA-01400 完全ガイド|cannot insert NULL の原因・NOT NULL 制約・デフォルト値・INVISIBLE 列への INSERT まで解説

Oracle の ORA-01400(cannot insert NULL into ("SCHEMA"."TABLE"."COLUMN"))エラーを完全解説。NULL を挿入できない主な原因(NOT NULL 制約・主キー制約・暗黙的な NULL)・INSERT 文で列を省略した場合の暗黙的な NULL 挿入・DEFAULT 値の設定と DEFAULT ON NULL の使い方(12c 以降)・ALTER TABLE で既存の NOT NULL 列にデフォルト値なしで NOT NULL を追加しようとした場合のエラー・INVISIBLE 列・仮想列への INSERT 制限まで実例で解説します。
Oracle

【Oracle】ORA-01017 完全ガイド|invalid username/password の原因・パスワード大文字小文字区別・対処法まで解説

Oracle の ORA-01017(invalid username/password; logon denied)エラーを完全解説。接続に失敗する主な原因(パスワード誤り・大文字小文字区別・ユーザー名ミス)・Oracle 11g 以降でパスワードが大文字小文字を区別するようになった仕様と SEC_CASE_SENSITIVE_LOGON の確認方法・IDENTIFIED EXTERNALLY / OS 認証のケース・接続文字列のプレフィックス(C## in CDB)・パスワードに特殊文字を含む場合の引用符の扱い・ログイン失敗の記録を確認する方法まで実例で解説します。
Oracle

【Oracle】ORA-00054 完全ガイド|resource busy and acquire with NOWAIT の原因・DDL のロック待機・対処法まで解説

Oracle の ORA-00054(resource busy and acquire with NOWAIT specified, or timeout expired)エラーを完全解説。ORA-00054 が発生する主な原因(SELECT FOR UPDATE NOWAIT・DDL 実行時のロック競合)・V$SESSION / V$LOCK でロックを保持しているセッションを特定する方法・DDL_LOCK_TIMEOUT パラメータで DDL の待機時間を設定する方法・WAIT / NOWAIT / SKIP LOCKED の使い分け・ロックを保持しているセッションを解放する手順まで実例で解説します。
Oracle

【Oracle】パーティションインデックス完全ガイド|ローカル / グローバルインデックスの違いとパーティション管理まで解説

Oracle のパーティションインデックスを完全解説。ローカルパーティションインデックス(LOCAL)の仕組みとパーティション刈り込みへの効果・グローバルパーティションインデックス(GLOBAL)との使い分け・パーティション操作(TRUNCATE / DROP PARTITION)後にインデックスが UNUSABLE になる問題と対処法・UPDATE GLOBAL INDEXES でパーティション操作と同時にインデックスを維持する方法・USER_IND_PARTITIONS でパーティションインデックスの状態を確認する方法まで実例で解説します。
Oracle

【Oracle】SCN(System Change Number)完全ガイド|V$DATABASE・SCN ⇔ TIMESTAMP 変換・Flashback との関係まで解説

Oracle の SCN(System Change Number)を完全解説。SCN がデータベースの一貫性・リカバリ・Flashback の基盤となる仕組み・V$DATABASE.CURRENT_SCN・DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER で現在の SCN を取得する方法・SCN_TO_TIMESTAMP / TIMESTAMP_TO_SCN で SCN とタイムスタンプを相互変換する方法・ORA-01555 や Flashback で参照される UNDO SCN の概念・SCN ヘッドルーム(SCN Headroom)の確認方法と上限への対処まで実例で解説します。
Oracle

【Oracle】オブジェクト型(CREATE TYPE)完全ガイド|属性・メンバーメソッド・型の継承・MAP ファンクションまで解説

Oracle のオブジェクト型(Object Type)を完全解説。CREATE TYPE で属性とメンバーメソッドを持つオブジェクト型を定義する方法・CREATE TYPE BODY でメンバーメソッドの実装を記述する方法・STATIC メソッドと MAP / ORDER ファンクションで比較演算を実装する方法・UNDER キーワードでオブジェクト型の継承(サブタイプ)を実装する方法・TREAT / IS OF 演算子で型チェックと型変換を行う方法・オブジェクト型をテーブルの列型やコレクションの要素型として使う実務パターンまで実例で解説します。
Oracle

【Oracle】データディクショナリ完全ガイド|DBA_* / ALL_* / USER_* ビューの使い方とよく使うクエリまで解説

Oracle のデータディクショナリを完全解説。USER_* / ALL_* / DBA_* の3層構造の違いと使い分け・DBA_OBJECTS / USER_SOURCE / DBA_SEGMENTS / DBA_EXTENTS / DBA_DEPENDENCIES でスキーマ情報を調査する方法・DBA_CONSTRAINTS / DBA_INDEXES / DBA_COLUMNS でテーブル定義を確認する方法・V$ 動的パフォーマンスビューとデータディクショナリビューの違い・よく使うデータディクショナリクエリ集まで実例で解説します。
Oracle

【Oracle】ORA-28000 完全ガイド|the account is locked(アカウントロック)の原因・解除・監視・防止まで解説

Oracle の ORA-28000(the account is locked)エラーを完全解説。アカウントがロックされる原因(FAILED_LOGIN_ATTEMPTS・PASSWORD_LOCK_TIME のプロファイル設定)・ALTER USER xxx ACCOUNT UNLOCK でロックを解除する方法・DBA_USERS.ACCOUNT_STATUS / V$LOCKED_USERS でロック状態を確認する方法・SYS.USER_HISTORY$ でログイン失敗履歴を確認する方法・プロファイルの FAILED_LOGIN_ATTEMPTS を設定してロックポリシーをカスタマイズする方法・運用中に突然ロックされないようにするための監視と通知の設定まで実例で解説します。
Oracle

【Oracle】リサイクルビン・FLASHBACK DROP 完全ガイド|USER_RECYCLEBIN・PURGE・BIN$ オブジェクトの仕組みまで解説

Oracle のリサイクルビン(Recycle Bin)と FLASHBACK DROP を完全解説。DROP TABLE したテーブルがリサイクルビンに入る仕組みと BIN$ 命名規則・FLASHBACK TABLE ... TO BEFORE DROP でテーブルを元の名前に復元する方法・USER_RECYCLEBIN / DBA_RECYCLEBIN でリサイクルビンの内容を確認する方法・PURGE TABLE / PURGE RECYCLEBIN / PURGE DBA_RECYCLEBIN で完全削除する方法・RECYCLEBIN パラメータでリサイクルビンを無効にする方法・DROP TABLE ... PURGE で即時完全削除する方法まで実例で解説します。
Oracle

【Oracle】SQL Trace・tkprof 完全ガイド|10046トレースの取得から tkprof によるボトルネック分析まで解説

Oracle の SQL Trace と tkprof を完全解説。ALTER SESSION SET SQL_TRACE = TRUE / ALTER SESSION SET EVENTS '10046 trace name context forever, level 12' でトレースを有効にする方法・DBMS_SESSION.SET_SQL_TRACE・DBMS_MONITOR でセッション・サービス単位にトレースを収集する方法・トレースファイルの場所(USER_DUMP_DEST / V$DIAG_INFO)の確認方法・tkprof でトレースファイルを解析してボトルネック SQL を特定する方法・WAIT レベルのトレース(level 4/8/12)で待機イベントを記録する方法まで実例で解説します。