PL/SQL

【PL/SQL】エラーログを自動収集するDBMS_ERRLOGの使い方

データ移行やバルク更新の最中に一部の行だけが制約違反で落ちてしまい、処理全体が中断してやり直しになる――そんな無駄を避けるた
PL/SQL

【PL/SQL】UTL_HTTPを使ったWeb API連携の実装方法

Web APIとの連携をPL/SQLだけで完結させたい場合、UTL_HTTPは最も汎用的な選択肢です。GETでのデータ取得、POSTでのJSON送信、ヘッ
PL/SQL

【PL/SQL】セキュリティコンテキスト(DBMS_SESSION.SET_CONTEXT)の利用例

アプリケーションとデータベースを連携させる際、ユーザーごとに異なる条件でアクセス制御をしたい場面があります。PL/SQLでは「
PL/SQL

【PL/SQL】結果キャッシュ(FUNCTION RESULT_CACHE)の活用方法

PL/SQLでは同じ入力に対して同じ結果を返す純粋関数を多用するケースがあります。しかし大規模な計算や集計を伴う関数を何度も
PL/SQL

【PL/SQL】JSON_TABLEとPL/SQLを組み合わせたJSON処理

JSONをRDBの力で高速に扱いたいとき、OracleのJSON_TABLEは最強の相棒になります。JSON列やCLOBに入っているドキュメントを、その
PL/SQL

【PL/SQL】外部ファイルを読み書きする方法(UTL_FILEの基本と注意点)

データベースからサーバ上のファイルを直接読み書きしたい場面では、PL/SQL標準パッケージのUTL_FILEが有効です。ログ出力やCSVの
PL/SQL

【PL/SQL】メール送信を自動化する方法(UTL_MAIL / UTL_SMTP活用)

社内バッチの完了通知やエラーログの送信、問い合わせ受付の自動応答など、メール送信はPL/SQLでの自動化と相性が良い機能です
PL/SQL

【PL/SQL】プロシージャの権限管理とAUTHIDの設計ベストプラクティス

PL/SQLのプロシージャやパッケージは「誰の権限で実行されるか」によって安全性と使い勝手が大きく変わります。設計の要
PL/SQL

【PL/SQL】DBMS_RLSによる行レベルセキュリティの実装方法

行レベルセキュリティ(Row-Level Security, RLS)は、同じ表でもユーザーや状況に応じて「見える行」を自動的に絞り込む仕組みです
PL/SQL

【PL/SQL】DBMS_WARNINGでコンパイル時の警告を制御する方法

PL/SQLのコードをコンパイルするとき、Oracleは潜在的な問題や非推奨な書き方を警告として通知してくれます。これらは実行エラーでは
PL/SQL

【PL/SQL】DBMS_TRACEで処理の実行経路を追跡する方法

PL/SQLの実行経路(どのプロシージャや関数がどの順で呼ばれ、どの行で例外が起きたか)を可視化したいときは、DBMS_TRACEを使う
PL/SQL

【PL/SQL】パーティションテーブルとPL/SQLの組み合わせ活用例

大規模データを扱うOracleでは、パーティションテーブルを前提にPL/SQLを設計すると性能と運用性が一気に上がります。読み取りはパ
PL/SQL

【PL/SQL】FORALLとSAVE EXCEPTIONSでバルクDMLのエラーを個別処理する方法

大量データを高速に処理する際、PL/SQLのFORALLはDMLをまとめて送ることでコンテキストスイッチを削減できる強力な構文です。ただし
PL/SQL

【PL/SQL】DBMS_LOCKを使った排他制御の実装方法

アプリケーションの同時実行制御をPL/SQLだけで実現したい場合、DBMS_LOCKは強力な選択肢になります。テーブル行ロックでは表現しづ
PL/SQL

【PL/SQL】DBMS_ALERTとDBMS_PIPEでプロセス間通信を行う方法

Oracleデータベース内のセッション間で軽量に通知やメッセージをやり取りしたいとき、PL/SQLの標準パッケージであるDBMS_ALERT
PL/SQL

【PL/SQL】エディションベースリディフィニション(EBR)とパッケージ管理

エディションベースリディフィニション(Edition-Based Redefinition, EBR)は、Oracle Databaseが提供するアプリケーションの
PL/SQL

【PL/SQL】WITH FUNCTION句を使ってSQL内に関数を埋め込む方法

Oracle Database 12c以降では、SQL文のWITH句の中にPL/SQL関数を埋め込める「WITH FUNCTION句」が利用できます。これにより、そ
PL/SQL

【PL/SQL】マルチテーブルINSERTをPL/SQLから活用する方法

マルチテーブルINSERTは一度の表スキャンで複数の表へ同時に挿入できるOracle独自の拡張構文です。ETLやデータ移送、親子関係の同時作成
PL/SQL

【PL/SQL】ファイングレイン監査(FGA)とPL/SQLの活用

ファイングレイン監査(FGA: Fine Grained Auditing)は、Oracleが提供する高度な監査機能で、特定の条件に合致したデータアクセス
PL/SQL

【PL/SQL】Invoker RightsとDefiner Rightsの違いと使い分け

PL/SQLのストアドプロシージャやファンクションは、デフォルトでは「作成者の権限」で実行されます。これをDefiner Rights(定義