EnquoteIdentifier(identifier, bAlwaysQuote, bCapitalize)
このメソッドは、識別子に二重引用符がない場合は二重引用符を追加し、結果を戻します。
宣言
// C# public static string EnquoteIdentifier(string identifier, bool bAlwaysQuote = true, bool bCapitalize = true);
パラメータ
-
identifier
入力識別子。
-
bAlwaysQuote
true
にすると、戻される識別子が必ず引用符で囲まれます。false
にすると、大/小文字の区別を保持する必要がある場合に、まだ引用符で囲まれていない単体の識別子にのみ引用符が追加されます。 -
bCapitalize
true
にすると、単体の識別子は、まだ二重引用符で囲まれていなければ、大文字になります。false
にすると、大文字と小文字が区別され、小文字が含まれている場合は二重引用符で囲まれます。
戻り値
識別子が二重引用符で囲まれて戻されます。ただし、次のどちらかの場合にまだ引用符で囲まれていない単体の識別子は除きます:
-
bAlwaysQuote
がfalse
で、bCapitalize
がtrue
である場合。 -
bAlwaysQuote
がfalse
で、bCapitalize
がfalse
で、識別子が大文字である場合。
例外
ArgumentNullException - 値はNULLにできません。(パラメータ'identifier'
')
OracleException - 識別子またはリテラルが無効です。
備考
このメソッドの目的は、SQLインジェクションの防止です。
単純SQL名が識別子としてサポートされています。つまり、修飾SQL名はサポートされていません。たとえば、SCHEMA.TABLE
は修飾SQL名です。
まだ引用符で囲まれていない、単体の識別子は、bAlwaysQuote
がtrue
である場合や、bCapitalize
がfalse
でありそれに小文字が含まれている場合のみ、引用符で囲まれます。bCapitalize
がtrue
である場合は、それは大文字になります。
引用符で囲まれた識別子はそのまま戻されますが、引用符で囲まれているその識別子に二重引用符やNULL文字を含めることはできません。
その他の識別子には、二重引用符とNULL文字を除くどの文字でも含めることができます。その識別子は二重引用符で囲まれます。
空の識別子は使用できません。
先頭と末尾の空白は、引用符で囲まれている場合は無視されず、切り捨てられません。
予約語は必ず引用符で囲まれます。
データベース文字セットでの識別子長および表現の検証が必要な場合は、他のEnquoteIdentifier
オーバーロードを使用します。