PL/SQL

【PL/SQL】性能診断のための実行計画・統計情報の収集と分析

SQLが遅いと感じたとき、やみくもにインデックスを増やすのではなく、「実行計画」「実行時統計」「オプティマイザ統計」の三点を正
PL/SQL

【PL/SQL】コードデプロイの自動化とEdition管理(CI/CD連携)

継続的インテグレーション/継続的デリバリの流れにPL/SQLのコードデプロイを組み込むなら、Edition-Based Redefinition(EBR)の採
PL/SQL

【PL/SQL】テスト容易性を高めるプロシージャ設計とモック化手法

ビジネスロジックを確実に自動テストするには、「外部依存(時刻・メール・HTTP・シーケンス・ファイル・権限)を分離して差し替え可
PL/SQL

【PL/SQL】DBMS_PARALLEL_EXECUTEによる大規模バッチの並列化戦略

PL/SQLでDBMS_PARALLEL_EXECUTEを使い、大規模UPDATEをチャンク分割して並列実行する方法を解説します。ROWID分割、RUN_TASK、TASK_STATUS、RESUME_TASK、監視SQL、権限、UNDO対策、再実行設計まで実務向けに整理します。
PL/SQL

【PL/SQL】マルチセッション環境での排他・同時実行制御の高度設計

PL/SQLのマルチセッション環境で必要な排他・同時実行制御を解説します。SELECT FOR UPDATE、SKIP LOCKED、DBMS_LOCK、楽観ロック、ORA-00054/00060/08177、再試行、監視SQLまで実務向けに整理します。
PL/SQL

【PL/SQL】例外をJSON形式で返すREST対応API設計

PL/SQLでREST/API向けに例外をJSON形式へ正規化する設計を解説します。Oracle 19cで動くJSON_OBJECTの書き方、ORA例外マッピング、ORDS公開、HTTPステータス、相関ID、監査ログまで実務向けに整理します。
PL/SQL

【PL/SQL】仮想列とトリガーの整合性設計|制約との使い分け・mutating table・監査

Oracleの仮想列とPL/SQLトリガーは、どちらもデータ整合性をデータベース側に寄せるための仕組みです。ただし、同じ目的で使うものではありません。仮想列は同じ行から計算できる派生値、制約は単純な禁止ルール、トリガーは副作用や監査、複数列更新の補正に使います。この記事では、制約との使い分け、mutating table、compound trigger、監査、INVALID対策、本番チェックまで整理します。
PL/SQL

【PL/SQL】Result Cacheとマテリアライズドビュー併用戦略|鮮度SLA・QUERY REWRITE・監視

Result Cacheとマテリアライズドビューは、どちらも重い処理を再利用して速くする仕組みですが、守備範囲が違います。MVは重い集合処理や集計を前計算し、Result Cacheは同じ引数で何度も呼ばれるPL/SQL関数やSQL結果の再計算を抑えます。この記事では鮮度SLA、QUERY REWRITE、DBMS_MVIEW、V$RESULT_CACHE、更新運用、監視、避ける設計まで実務目線で整理します。
PL/SQL

【PL/SQL】例外設計と再試行パターン|一時障害・冪等性・SAVEPOINT・DBMS_SCHEDULER

大規模PL/SQLでは、例外を握りつぶすのではなく、再試行できる一時障害と即失敗すべき恒久障害に分け、冪等性、部分ロールバック、監査ログ、ジョブ再実行を含めて設計する必要があります。
PL/SQL

【PL/SQL】インストゥルメンテーション設計|DBMS_APPLICATION_INFO・ログトレース

PL/SQLの障害対応と性能調査を楽にするには、ログ、トレース、監査、メトリクスを分けて設計し、相関ID、MODULE/ACTION、CLIENT_IDENTIFIER、エラー情報を一貫して残す必要があります。
PL/SQL

【PL/SQL】ユーザー定義集計関数の作り方|ODCIAggregate・CLOB対応・並列実行

Oracleのユーザー定義集計関数は、ODCIAggregateインターフェースを実装したオブジェクト型をSQL集計関数として登録する仕組みです。LISTAGGで足りない集約、CLOB集約、独自統計、JSON配列化などの実装に使えます。
PL/SQL

【PL/SQL】権限分離とセキュリティパッケージ設計|Invoker Rights・直接GRANT・RLS

PL/SQLで最小権限と実装効率を両立するには、DATAスキーマとAPIスキーマを分け、読み取りはInvoker Rights、更新はSecure Definer、共通条件はセキュリティコンテキストやRLSへ寄せる設計が有効です。
PL/SQL

【PL/SQL】依存オブジェクトとINVALID再コンパイルの制御|USER_DEPENDENCIES・UTL_RECOMP

PL/SQLのデプロイでは、パッケージ仕様、型、ビュー、権限、シノニムの変更によって依存オブジェクトがINVALID化します。影響範囲の確認、再コンパイル順序、エラー診断、デプロイ後の収束手順を整理します。
PL/SQL

【PL/SQL】カーソルキャッシュとメモリ管理|OPEN_CURSORS・ORA-01000対策

PL/SQLで大量トランザクションや動的SQLを扱う場合、ハードパースを減らし、開いたカーソルを漏らさず閉じ、PGAを圧迫しないフェッチ設計にすることが重要です。
PL/SQL

【PL/SQL】大量データ処理のコミット頻度とUNDO最適化|チャンク設計・ORA-01555対策

PL/SQLで大量データを更新・投入するときは、COMMITを細かく刻めば安全というわけではありません。UNDO、REDO、再実行、ロック、長時間SELECTとの干渉を踏まえて、業務キーや期間でチャンクを設計する必要があります。
PL/SQL

【PL/SQL】トランザクション設計パターン|COMMIT境界・ロック・再処理まで

PL/SQLでデータ整合性を守るには、COMMIT/ROLLBACKの書き方だけでなく、処理単位、ロック順序、部分失敗、監査ログ、再実行、バッチ再処理まで含めて設計する必要があります。この記事では実務で使うトランザクション設計パターンを整理します。
PL/SQL

【PL/SQL】OBJECT TYPEとメンバーメソッドの使い方|MAP・継承・ネスト表まで

Oracle PL/SQLのOBJECT TYPEとメンバーメソッドを使った設計を解説。TYPE BODY、SELF、コンストラクタ、MAP/ORDERメソッド、継承、FINAL/NOT FINAL、ネスト表、メタデータ確認、使うべき場面と避けるべき場面まで整理します。
PL/SQL

【PL/SQL】パッケージ仕様と本体の分離設計|依存関係・再コンパイル・デプロイ順序まで

PL/SQLパッケージの仕様と本体を分離して保守性を高める設計を解説。公開API、private実装、依存関係、再コンパイル、ACCESSIBLE BY、AUTHID、package state、ORA-04068、デプロイ順序まで整理します。
PL/SQL

【PL/SQL】DBMS_ERRLOGとLOG ERRORSの使い方|REJECT LIMIT・ERR$_表・再処理設計まで

Oracle PL/SQLでDBMS_ERRLOGとLOG ERRORSを使い、DML失敗行をERR$_表へ退避する方法を解説。CREATE_ERROR_LOG、REJECT LIMIT、ERRTAG、MERGE、FORALL、skip_unsupported、再処理、保持期限、ジョブ運用まで整理します。
PL/SQL

【PL/SQL】UTL_HTTPでREST API連携する方法|ACL・Wallet・JSON・例外処理まで

PL/SQLのUTL_HTTPでREST APIを呼び出す方法を解説。ネットワークACL、HTTPS Wallet、GET/POST、JSON送受信、Bearerトークン、Content-Length、CLOB/BLOB、END_RESPONSE、例外処理、リトライ設計まで整理します。