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、例外処理、リトライ設計まで整理します。
PL/SQL

【PL/SQL】DBMS_SESSION.SET_CONTEXTの使い方|SYS_CONTEXT・VPD・接続プール対応まで

PL/SQLでDBMS_SESSION.SET_CONTEXTを使い、アプリケーションコンテキストへテナントIDやユーザー属性を設定する方法を解説。CREATE CONTEXT、信頼済みパッケージ、SYS_CONTEXT、CLEAR_CONTEXT、SET_IDENTIFIER、VPD連携、接続プール対応まで整理します。
PL/SQL

【PL/SQL】FUNCTION RESULT_CACHEの使い方|関数キャッシュの判断基準・確認SQL・注意点

PL/SQLのFUNCTION RESULT_CACHEで関数戻り値をキャッシュする方法を解説。使ってよい条件、使ってはいけない条件、RELIES_ONの扱い、DBMS_RESULT_CACHE、V$RESULT_CACHE_OBJECTS、計測方法、RACやセッション依存値の注意点まで整理します。
PL/SQL

【PL/SQL】JSON_TABLEでJSONを取り込む方法|NESTED PATH・MERGE・エラー処理まで

Oracle PL/SQLでJSON_TABLEを使い、JSONをリレーショナルな行・列へ展開して取り込む方法を解説。NESTED PATH、ON ERROR/ON EMPTY、ステージング、MERGE、DBMS_ERRLOG、性能設計、再実行まで整理します。
PL/SQL

【PL/SQL】UTL_FILEでCSV・ログファイルを読み書きする方法|DIRECTORY設定とエラー対処

PL/SQLのUTL_FILEで外部ファイルを読み書きする実務手順を解説。DIRECTORY設定、CSV出力、CSV読み込み、ログ追記、ファイル名検証、FFLUSH、FCLOSE_ALL、ORA-29283、NO_DATA_FOUND、外部表との使い分けまで整理します。
PL/SQL

【PL/SQL】UTL_MAIL・UTL_SMTPでメール送信する方法|ACL設定・STARTTLS・エラー対処まで

Oracle PL/SQLでメール送信を自動化する方法を解説。UTL_MAIL、UTL_SMTP、ネットワークACL、SMTP_OUT_SERVER、STARTTLS、AUTH、添付ファイル、ORA-24247、ORA-29278、誤送信防止まで整理します。
PL/SQL

【PL/SQL】AUTHIDと権限管理の設計|DEFINER・CURRENT_USER・直接GRANTの実務チェック

PL/SQLのプロシージャ・パッケージを安全に公開するためのAUTHID設計を解説。DEFINER、CURRENT_USER、直接GRANT、ロール無効、ORA-01031、ORA-06598、動的SQL、スキーマ分離まで実務観点で整理します。
PL/SQL

【PL/SQL】DBMS_RLSの使い方|VPDで行レベルセキュリティを実装する方法

Oracle PL/SQLのDBMS_RLSでVPDによる行レベルセキュリティを実装する方法を解説。アプリケーションコンテキスト、ポリシー関数、ADD_POLICY、UPDATE_CHECK、列マスキング、運用時の注意点まで整理します。
PL/SQL

【PL/SQL】DBMS_WARNINGの使い方|PLSQL_WARNINGS・PLW警告・CI/CDで警告をエラー化する方法

Oracle PL/SQLのDBMS_WARNINGとPLSQL_WARNINGSでコンパイル時警告を制御する方法を解説。ENABLE:ALL、ERROR:06002、SEVERE/PERFORMANCE/INFORMATIONAL、USER_ERRORS、ALL_PLSQL_OBJECT_SETTINGS、CI/CDで警告をビルド失敗にする運用まで整理します。
PL/SQL

【PL/SQL】DBMS_TRACEの使い方|呼び出し経路・例外発生箇所を追跡する方法

Oracle PL/SQLのDBMS_TRACEで処理の呼び出し経路と例外発生箇所を追跡する方法を解説。tracetab.sql、SET_PLSQL_TRACE、CLEAR_PLSQL_TRACE、TRACE_LIMIT、トレース表の読み方、DBMS_PROFILERやDBMS_APPLICATION_INFOとの使い分けまで整理します。