Oracle

【Oracle】ORA-01403 完全ガイド|NO DATA FOUND の発生パターン・PL/SQL 例外処理・COUNT を使わない安全な SELECT INTO まで解説

Oracle の ORA-01403(no data found)エラーを完全解説。PL/SQL の SELECT INTO で0件の場合に発生する NO_DATA_FOUND 例外の仕組み・TOO_MANY_ROWS 例外(SELECT INTO で2件以上返された場合)との違い・EXCEPTION ブロックで NO_DATA_FOUND を捕捉して安全に処理する方法・デフォルト値を返す CASE WHEN / NVL との使い分け・CURSOR を使って0件を安全に処理する方法・UTL_FILE / DBMS_OUTPUT の NO_DATA_FOUND との違い・BULK COLLECT で NO_DATA_FOUND が発生しない理由まで解説します。
Oracle

【Oracle】ALTER TABLE 完全ガイド|列の追加・変更・削除・制約操作・列名変更・DBMS_REDEFINITION まで解説

Oracle の ALTER TABLE を完全解説。列の追加(ADD)・変更(MODIFY)・削除(DROP COLUMN)・未使用化(SET UNUSED)の使い方・列名の変更(RENAME COLUMN)・テーブル名の変更(RENAME)・NOT NULL / DEFAULT 値の追加と変更・PRIMARY KEY / UNIQUE / FOREIGN KEY の追加と削除・制約の有効化・無効化(ENABLE / DISABLE CONSTRAINT)・大量データがある本番テーブルのオンライン再定義(DBMS_REDEFINITION)の使い方まで解説します。
Oracle

【Oracle】AWR レポート完全ガイド|生成手順・読み方・ボトルネック特定・スナップショット管理まで解説

Oracle AWR(Automatic Workload Repository)レポートを完全解説。DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT でスナップショットを手動作成する方法・@?/rdbms/admin/awrrpt.sql で AWR レポートを生成する方法・AWR レポートの読み方(Load Profile・Top 5 Timed Events・SQL Statistics)・遅い SQL の特定と実行計画の確認方法・DBA_HIST_SNAPSHOT でスナップショット管理・保持期間の変更方法・RAC 環境での AWR レポート(awrrpti.sql・awrgrpt.sql)・AWR と ASH の使い分けまで解説します。
Oracle

【Oracle】ORA-00600 完全ガイド|内部エラーの原因・アラートログ確認・トレースファイル解析・SR 申請まで解説

Oracle の ORA-00600(internal error code, arguments: [...])エラーを完全解説。ORA-00600 とは何か(Oracle のバグ・データ破損・メモリ問題)・アラートログ(alert_インスタンス名.log)で ORA-00600 を確認する方法・トレースファイルで詳細情報(最初の引数・call stack)を取得する方法・V$DIAG_INFO でトレースファイルの場所を確認する方法・Oracle Support(MOS)でエラーコードを調査してパッチを特定する方法・SR(サービスリクエスト)申請に必要な情報の収集方法まで解説します。
Oracle

【Oracle】プロファイル(PROFILE)完全ガイド|パスワードポリシー・リソース制限・CREATE PROFILE・ALTER USER PROFILE まで解説

Oracle のプロファイル(PROFILE)を完全解説。CREATE PROFILE でパスワードポリシー(有効期限・複雑性・再利用制限)を設定する方法・FAILED_LOGIN_ATTEMPTS でアカウントロックの閾値を設定する方法・PASSWORD_LOCK_TIME・PASSWORD_GRACE_TIME・PASSWORD_LIFETIME の意味と設定方法・セッション数・CPU 時間・アイドルタイムなどのリソース制限を設定する方法・ALTER USER ユーザー名 PROFILE でプロファイルを割り当てる方法・DBA_PROFILES・DBA_USERS でプロファイル設定を確認する方法まで解説します。
Oracle

【Oracle】BULK COLLECT / FORALL 完全ガイド|コンテキストスイッチ削減・大量データ高速処理・SAVE EXCEPTIONS まで解説

Oracle の BULK COLLECT と FORALL を完全解説。PL/SQL と SQL エンジン間のコンテキストスイッチがパフォーマンスに与える影響・BULK COLLECT INTO で SELECT 結果をコレクションに一括取得する方法・LIMIT 句で取得行数を制限してメモリを節約する方法・FORALL で大量の DML を一括実行してパフォーマンスを大幅改善する方法・SAVE EXCEPTIONS で一部エラーがあっても処理を継続する方法・SQL%BULK_ROWCOUNT で FORALL の各行の影響行数を確認する方法まで解説します。
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 でパーティションインデックスの状態を確認する方法まで実例で解説します。