2011-06-28 94 views
5

oracleにストアド・プロシージャを書き込むときに、PL/SQLにパラメータ名を書き込むための多くの命名規則があります。Oracleストアド・プロシージャ変数の命名規則

  1. PROCEDURE PROC_MY_STORED_PROCEDURE (sFirstName VARCHAR2, nId NUMBER, oCursor REF_CURSOR)

    PROCEDURE PROC_MY_STORED_PROCEDURE (first_name_in VARCHAR2, Id_in NUMBER, o_Cursor REF_CURSOR)

  2. ローカル変数lまたはl_接頭辞とgまたはg_

を持つグローバルが追随する他の良い命名規則はありますでしょうか?

従うべきベストプラクティスは何ですか?

+2

Steven Feuersteinの命名規則の推奨事項をご覧ください。http://www.toadworld.com/Experts/StevenFeuersteinsPLSQLObsession/PLSQLStandards/tabid/580/Default.aspx – Sathya

答えて

5

命名規則には一貫性があります。
慣例が常に使用されている限り、使用するものはそれほど重要ではありません。その後、必要ならドキュメンテーション。

私が気に入った慣例の1つは、変数名に方向を示すことでした。 IE:INパラメータは、IN_FIRST_NAMEです。 OUTパラメータはOUT_FIRST_NAMEとなり、IN OUTIN_OUT_FIRST_NAMEとなります。 Oracleには文字制限(32文字のIIRC)がありますので、あまりにも狂ってはいけません。

+2

制限は30文字です。 –

9

ローカル(またはグローバル)変数と列名を明確に区別する名前付けスキームを選ぶことを最優先に考えています。接頭辞がローカルの場合はl_か、変数の場合はv_かどうかは重要ではありません。

もう1つの状況は、パラメータまたは変数に文字列形式の日付(または潜在的な日付)が含まれている場所です(たとえば、ファイルから読み込まれたり、Webページから渡され、まだ検証されていません)。命名規則(_DATEC接尾辞など)を使用すると、これらを実際の日付とはっきりと区別し、暗黙的な変換を避けることができます。アプリケーションによっては、サニタイズされていない変数とunsanitised変数を区別することができます(つまり、SQLインジェクションやXSS /その他のマルウェアをチェックしているかどうか)。

変数名では大文字と小文字は区別されません。また、IDEフォーマッタは、プリファレンスに基づいて大文字と小文字を変更することがあります。ですから、私はcamelCaseに頼るのではなく、単語間の区切りを強調しています。