asSqlIdentifier
与えられた値を SQL の識別子またはドット(.
)区切りの識別子の列を表す文字列に変換します。
info
- 値の変換には
asSqlValue()
を、文字列の変換にはasSqlString()
をそれぞれ利用できます。
構文
asSqlIdentifier(rawIdentifier) => string
asSqlIdentifier(rawIdentifier, useDoubleQuote) => string
引数
-
rawIdentifer
:any
識別子へ変換する値です。
空でない文字列を指定します。
-
useDoubleQuote
:boolean
|undefined
(省略可)引用符が必要な識別子に二重引用符(
"
)を使うかどうかです。true
なら二重引用符を使い、false
なら逆引用符(`
)を使います。この引数の指定は任意です。指定がない場合、二重引用符を使います(
true
)。
返値: string
変換結果の文字列です。
引数 rawIdentifier
が英小文字・下線(/[_a-z]/
)から始まり、英小文字・算用数字・下線(/[_a-z0-9]/
)からなる単語の場合、rawIdentifier
の値がそのまま返ります。
そうでない場合、rawIdentifier
を引用符で囲んだ文字列が返ります。
使用する引用符は引数 useDoubleQuote
の値によって異なり、true
なら二重引用符("
)、false
なら逆引用符(`
)が使われます。
rawIdentifier
に引用符が含まれる場合、useDoubleQuote
が true
なら二重引用符を ""
に、useDoubleQuote
が false
なら逆引用符を ``
にそれぞれ置換します。
note
- 予期しない名前の衝突を防ぐため、引用符のエスケープは常に行われます。
- 多くのデータベースにおいて識別子として英大文字も引用符なしに使用可能ですが、データベースによって、識別子をそのまま使うものや、小文字に変換するものなどがあり振る舞いは統一されていません。 一方で引用符つきの識別子としては大文字小文字の区別がなされるため、英大文字を含む文字列についても引用符をつける処理を行います。
例外
DBError
- 予期しないトークンを検出した場合
- 連続するドット
- ドットから始まる文字列
- 対応する終端の存在しない引用符
- 引用符で囲まれた単語の直前または直後のドットでない文字
- 予期しないトークンを検出した場合
解説
与えられた値を SQL の識別子またはドット(.
)区切りの識別子の列を表す文字列に変換します。
SQL 文の中で識別子を要求する箇所に値を挿入する際に利用できます。