Tips4. PL/SQLの命名ルール

Oracle, 共通化PL/SQL, SQL, ハンガリアン記法, 命名, 命名規則, 変数

基本的にPL/SQLには言語仕様として定められた命名ルールはありません。
Oracleからも命名は強制されていません。
(それどころか、Oracle謹製の開発ツールであるSQL*Developer初期設定と、OracleのERPパッケージであるE-Business Suiteにおける追加機能用開発者ガイドでは、大文字・小文字の命名ルールが真逆だったりします)

確実に言えるのは、オブジェクト名(テーブル名やカラム名、変数名等)が30byte以内に収める必要があります。
(12.2からは、128byteに拡張されました)

そのようにあまり制約がなく、自由に記述できるPL/SQLですが、以下の2点は命名規約として適用することを推奨します。

・大文字小文字の使い分け
基本的に予約語とそれ以外の単語で振り分けることになります。
どちらが大文字・小文字にするかは、ここでは問いませんが、いずれかに固定すべきです。

理由の一つは可読性。
そしてもう一つはSQLの性能に影響するためです。
SQLは、同一の内容でも、大文字・小文字が異なれば、違うSQLとして解析処理を行います。
同じSQLの解析結果がキャッシュに残っていれば、解析処理はスキップされます。

・システムハンガリアン記法で記述する
つまりはデータ型がわかるような接頭辞を付加するということです。
OracleのERPパッケージ「E-Business Suite」の開発者ガイドでは、これに変数の適用範囲も含めることを指定しています。
SQLを記述するにあたっては、データ型を意識し、暗黙の型変換が行われてINDEXが無効になる、という事象を避ける必要があります。
NUMBER型なら"n"、VARCHAR2なら"v"、DATE型なら"d"を接頭辞とすることで、常にプログラマがデータ型を意識するようになります。
同時に、変数のスコープも意識する必要があります。
こちらも関数内のローカル変数なら"l"、グローバル変数なら"g"を接頭辞とすることで、変数のスコープを意識することになります。

いずれも些細な内容かも知れませんが、後々問題になることを思えば、些細だからこそ開発の早い段階から対応しておくべきです。