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(定義
PL/SQL

【PL/SQL】DBMS_APPLICATION_INFOで処理状況を監視に出力する方法

DBMS_APPLICATION_INFOは、実行中のPL/SQLやアプリケーション処理の「いま何をやっているか」をデータベース側へ明示するための標準
PL/SQL

【PL/SQL】DBMS_PROFILERでコード実行時間を計測する方法

DBMS_PROFILERはPL/SQLコードの行単位で実行回数や経過時間を計測し、どこが遅いのかを数値で可視化できる標準パッケージです。体感
PL/SQL

【PL/SQL】コレクション(配列・ネスト表)の基本と活用例

PL/SQLには配列やリストを表現できる「コレクション」という仕組みがあり、大量データを効率的に扱うために活用されます。代表的な
PL/SQL

【PL/SQL】DBMS_METADATA完全解説|DDL取得・SET_TRANSFORM_PARAM・スキーマ一括出力・エラー対処

DBMS_METADATA.GET_DDL でテーブル・ビュー・インデックス等の DDL を取得する方法を完全解説。SET_TRANSFORM_PARAM による STORAGE/TABLESPACE 句の除去、GET_DEPENDENT_DDL での制約・インデックス一括取得、OPEN/FETCH_DDL/CLOSE によるスキーマ全体の一括出力、よくあるエラー(ORA-31600/ORA-39213/ORA-31608)の対処まで体系的に解説します。
PL/SQL

【PL/SQL】AUTONOMOUS TRANSACTIONで独立した処理を行う方法

PL/SQLのトランザクションは通常1セッション内で共有され、COMMITやROLLBACKは全体に影響します。しかし「本体トランザクションとは
PL/SQL

【PL/SQL】SAVEPOINTを使った部分ロールバックの実装方法

トランザクションの一部だけを取り消して処理を継続したい時、PL/SQLではSAVEPOINTとROLLBACK TO SAVEPOINTを組み合わせることで安全
PL/SQL

【PL/SQL】REF CURSORを使った柔軟なデータ取得方法

REF CURSOR(参照カーソル)は、SELECTの結果集合への“ハンドル”を変数として受け渡せる仕組みです。固定の列構成に縛られず、
PL/SQL

【PL/SQL】コミットとロールバックの正しい使い方

トランザクション制御はPL/SQLの信頼性と性能に直結します。COMMITとROLLBACKはデータベースの一貫性を保ちつつ、いつ確定・取り消し