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)で待機イベントを記録する方法まで実例で解説します。
Oracle

【Oracle】ビュー(VIEW)完全ガイド|CREATE VIEW・更新可能ビュー・WITH CHECK OPTION・INSTEAD OF トリガーまで解説

Oracle のビュー(VIEW)を完全解説。CREATE OR REPLACE VIEW の構文と OR REPLACE・FORCE オプションの使い方・更新可能ビュー(Updatable View)の条件とビューを通じた INSERT/UPDATE/DELETE の制限・WITH CHECK OPTION で行の可視性を維持する方法・WITH READ ONLY で読み取り専用にする方法・INSTEAD OF トリガーで複雑なビューに対する DML を実装する方法・USER_VIEWS / USER_UPDATABLE_COLUMNS で定義と更新可能性を確認する方法まで実例で解説します。
Oracle

【Oracle】SYS_CONTEXT・アプリケーションコンテキスト完全ガイド|USERENV 組み込み情報・カスタムコンテキスト・VPD 連携まで解説

Oracle の SYS_CONTEXT とアプリケーションコンテキストを完全解説。SYS_CONTEXT('USERENV', 'SESSION_USER') でセッション情報(ユーザー名・IP アドレス・言語・DBアクセス名など)を取得する方法・CREATE CONTEXT と DBMS_SESSION.SET_CONTEXT でカスタムコンテキストを作成してセッション固有の値を保持する方法・LOCAL(セッション単位)と GLOBAL(セッション間共有)コンテキストの違い・VPD(Virtual Private Database)ポリシーと組み合わせてコンテキストを活用する方法・アプリケーションログイン情報をセッションに紐付けるパターンまで実例で解説します。
Oracle

【Oracle】ORA-01031 完全ガイド|insufficient privileges(権限不足)の原因・ロールと PL/SQL の落とし穴・対処法まで解説

Oracle の ORA-01031(insufficient privileges)エラーを完全解説。権限不足が起きる主な原因(オブジェクト権限・システム権限の未付与)・ロール経由の権限が PL/SQL(DEFINER RIGHTS)の中で有効にならない理由と対処法・EXECUTE IMMEDIATE や動的 SQL でのよくある ORA-01031 のパターン・USER_SYS_PRIVS / USER_TAB_PRIVS / SESSION_PRIVS で現在の権限を確認する方法・GRANT 文でオブジェクト権限・システム権限を付与する手順まで実例で解説します。
Oracle

【Oracle】INTERVAL データ型完全ガイド|INTERVAL YEAR TO MONTH・INTERVAL DAY TO SECOND による期間計算まで解説

Oracle の INTERVAL データ型を完全解説。INTERVAL YEAR TO MONTH で年・月の期間を扱う方法・INTERVAL DAY TO SECOND で日・時・分・秒(マイクロ秒まで)の期間を扱う方法・NUMTOYMINTERVAL / NUMTODSINTERVAL で数値を INTERVAL に変換する方法・DATE / TIMESTAMP と INTERVAL の四則演算・EXTRACT で INTERVAL から特定の要素を取り出す方法・勤怠管理・SLA 計算・期限管理などの実務ユースケースまで実例で解説します。