EnquoteIdentifier(identifier, bAlwaysQuote, bCapitalize)

このメソッドは、識別子に二重引用符がない場合は二重引用符を追加し、結果を戻します。

宣言

// C#
public static string EnquoteIdentifier(string identifier, bool bAlwaysQuote = true, bool
        bCapitalize = true);

パラメータ

  • identifier

    入力識別子。

  • bAlwaysQuote

    trueにすると、戻される識別子が必ず引用符で囲まれます。falseにすると、大/小文字の区別を保持する必要がある場合に、まだ引用符で囲まれていない単体の識別子にのみ引用符が追加されます。

  • bCapitalize

    trueにすると、単体の識別子は、まだ二重引用符で囲まれていなければ、大文字になります。falseにすると、大文字と小文字が区別され、小文字が含まれている場合は二重引用符で囲まれます。

戻り値

識別子が二重引用符で囲まれて戻されます。ただし、次のどちらかの場合にまだ引用符で囲まれていない単体の識別子は除きます:

  • bAlwaysQuotefalseで、bCapitalizetrueである場合。

  • bAlwaysQuotefalseで、bCapitalizefalseで、識別子が大文字である場合。

例外

ArgumentNullException - 値はNULLにできません。(パラメータ'identifier'')

OracleException - 識別子またはリテラルが無効です。

備考

このメソッドの目的は、SQLインジェクションの防止です。

単純SQL名が識別子としてサポートされています。つまり、修飾SQL名はサポートされていません。たとえば、SCHEMA.TABLEは修飾SQL名です。

まだ引用符で囲まれていない、単体の識別子は、bAlwaysQuotetrueである場合や、bCapitalizefalseでありそれに小文字が含まれている場合のみ、引用符で囲まれます。bCapitalizetrueである場合は、それは大文字になります。

引用符で囲まれた識別子はそのまま戻されますが、引用符で囲まれているその識別子に二重引用符やNULL文字を含めることはできません。

その他の識別子には、二重引用符とNULL文字を除くどの文字でも含めることができます。その識別子は二重引用符で囲まれます。

空の識別子は使用できません。

先頭と末尾の空白は、引用符で囲まれている場合は無視されず、切り捨てられません。

予約語は必ず引用符で囲まれます。

データベース文字セットでの識別子長および表現の検証が必要な場合は、他のEnquoteIdentifierオーバーロードを使用します。