Oracle

【Oracle】ORA-04088の原因と解決方法|error during execution of trigger・トリガー実行時エラーの調べ方

ORA-04088は、Oracleのトリガー実行中に別のエラーが発生したことを示すメッセージです。ORA-06512の行番号、DBA_TRIGGERS、DBA_SOURCE、DBA_ERRORS、:NEW/:OLDの使い方、権限不足、無効オブジェクトを順に確認します。
Oracle

【Oracle】ORA-00604の原因と解決方法|error occurred at recursive SQL level 1・再帰SQLエラーの調べ方

ORA-00604は、Oracleが内部的に実行する再帰SQLの処理中に別のエラーが起きたことを示すメッセージです。ORA-00604自体ではなく、直後に出るORAエラー、ログオン/DDLトリガー、権限不足、無効オブジェクト、環境差分を順に確認します。
Oracle

【Oracle】ORA-01653/ORA-01654の原因と解決方法|unable to extend table/index・表領域不足の確認と対処

ORA-01653/ORA-01654は、Oracleが表または索引セグメントの次のエクステントを確保できない時に発生します。表領域の空き、AUTOEXTEND、MAXSIZE、データファイル追加、索引表領域、TEMP不足との違いを確認し、業務影響を抑えて対処する手順をまとめます。
Oracle

【Oracle】ORA-01578の原因と解決方法|data block corrupted・ブロック破損の確認と復旧

ORA-01578は、Oracleがデータファイル内の破損ブロックを読み込んだ時に発生するエラーです。ORA-01110で対象データファイル、RMAN VALIDATEやDBVERIFYで破損範囲を確認し、バックアップからのリカバリ、ブロックメディアリカバリ、表領域単位の復旧、Data Pump退避などを判断します。ORA-26040が併発する場合はNOLOGGING操作由来の可能性もあります。
Oracle

【Oracle】ORA-08103の原因と解決方法|object no longer exists・実行中に表が消えた時の対処

ORA-08103は、SQL実行中に参照していた表、パーティション、索引などのオブジェクトが削除・TRUNCATE・EXCHANGE PARTITION・再作成などで変わった時に発生します。単なる「表がない」ではなく、実行開始後にオブジェクトの実体が変わることがポイントです。この記事では、原因の見分け方、確認SQL、監査ログ、パーティション運用、再実行判断、再発防止を整理します。
Oracle

【Oracle】ORA-14400の原因と解決方法|inserted partition key does not map to any partition

ORA-14400は、パーティション表へINSERTした値が、どのパーティションにも割り当てられないときに発生します。月次パーティションの追加漏れ、VALUES LESS THANの境界値ミス、LISTパーティションの値不足、INTERVALパーティション未使用などが主な原因です。この記事では原因の見分け方、確認SQL、ADD PARTITION、MAXVALUE、INTERVAL、DEFAULTパーティション、再発防止まで整理します。
Oracle

【Oracle】ORA-12838の原因と解決方法|並列DML・APPEND後に同じ表を読めない時の対処

ORA-12838は、並列DMLやダイレクト・パスINSERTで表を変更したあと、同じトランザクション内でその表をSELECT、UPDATE、DELETEしようとした時に発生するエラーです。COMMITまたはROLLBACKでトランザクションを区切る、APPENDや並列DMLを使う場所を限定する、一時表やステージング表を分ける、といった対策が必要です。
Oracle

【Oracle】ORA-30036の原因と解決方法|UNDO表領域不足・長時間トランザクション・確認SQL

ORA-30036は、OracleがUNDO表領域内のUNDOセグメントを拡張できないときに発生します。単に容量を増やせばよい場合もありますが、長時間トランザクション、大量DML、UNDO_RETENTION、AUTOEXTEND上限、RETENTION GUARANTEEが絡むこともあります。この記事では、止血手順、確認SQL、原因別の直し方、再発防止まで実務向けに整理します。
SQL

【SQL】文字列のバイト数を取得する方法|DATALENGTH・LENGTHB・OCTET_LENGTHの違い

SQLで文字列のバイト数を取得する方法を解説します。SQL ServerのDATALENGTH、OracleのLENGTHB、PostgreSQLのoctet_length、MySQLのLENGTH/OCTET_LENGTHを比較し、文字数とバイト数を取り違えやすい実務パターンを整理します。
HTML/CSS

【CSS】半円の作り方|border-radius・clip-path・上下左右の実装パターン

CSSで半円を作る方法を解説します。border-radiusで作る基本形、clip-pathで切り抜く方法、疑似要素を使った装飾、上下左右の半円パターンをまとめます。
Oracle

【Oracle】ORA-22835の原因と解決方法|CLOB/BLOB変換のバッファ不足

ORA-22835はCLOB to CHARまたはBLOB to RAW変換時のバッファ不足です。TO_CHAR(CLOB)の避け方、DBMS_LOB.SUBSTR、分割読み出し、XML/JSON処理の注意点を整理します。
Oracle

【Oracle】ORA-00947の原因と解決方法|値の個数が足りません

ORA-00947は、INSERTの列数に対してVALUES句やSELECT句の値が足りない時に発生します。列リスト指定、INSERT INTO SELECT、INSERT ALL、DEFAULT/NULLの直し方を整理します。
Oracle

【Oracle】ORA-02290の原因と解決方法|CHECK制約違反の直し方

ORA-02290はCHECK制約違反です。制約名から条件を確認し、INSERT/UPDATE値、NULL、NLS、既存データ、制約の有効/無効状態を切り分けます。
Oracle

【Oracle】ORA-01950の原因と解決方法|表領域QUOTA不足の直し方

ORA-01950は、対象表領域に対するユーザーのQUOTA不足で発生します。DBA_TS_QUOTASの確認、ALTER USER QUOTA、DEFAULT TABLESPACE、UNLIMITED TABLESPACEの使い分けを整理します。
Oracle

【Oracle】ORA-00918の原因と解決方法|列の定義があいまいです

ORA-00918は、JOINした表に同名列があり、どちらの列か特定できない時に発生します。SELECT・WHERE・ORDER BY・サブクエリの直し方と、表別名の付け方を実例で解説します。
Oracle

【Oracle】ORA-01704の原因と解決方法|string literal too long・長い文字列の入れ方

ORA-01704はSQLの文字列リテラルが長すぎる時に発生します。4000バイト制限、CLOB列へのINSERT、バインド変数、DBMS_LOB.APPEND、SQL*Loaderでの回避方法を整理します。
Oracle

【Oracle】ORA-04030の原因と解決方法|PGA不足・プロセスメモリ不足を切り分ける

ORA-04030はOracleプロセスの私有メモリ不足で発生します。PGA、OSメモリ、プロセス上限、v$process_memory、v$pgastat、大量処理SQLの見方と、ORA-04031との違いを整理します。
Oracle

【Oracle】ORA-02049の原因と解決方法|timeout: distributed transaction waiting for lock・分散トランザクションのロック待ち

ORA-02049は分散トランザクションのロック待ちタイムアウトです。DBリンク経由更新、ローカル/リモートDBの待機確認、DBA_2PC_PENDING、distributed_lock_timeoutの扱いを整理します。
Oracle

【Oracle】ORA-04043の原因と解決方法|object does not exist・存在しないオブジェクトを参照した時の確認ポイント

ORA-04043はobject does not existを示すOracleエラーです。本当に存在しないのか、スキーマ違い・シノニム・大文字小文字・権限不足なのかを確認するSQLと対処を整理します。
Oracle

【Oracle】ORA-01113の原因と解決方法|file needs media recovery・データファイルのリカバリが必要な時の確認ポイント

ORA-01113はfile needs media recoveryを示すOracleエラーです。ORA-01110で対象データファイルを特定し、v$recover_file、RECOVER DATAFILE、RMAN復旧、OPEN RESETLOGSの判断を整理します。