文字列・識別子・コメントの中の $
文字列リテラル、二重引用符つきの列名、ブロックコメント、行コメントの中に $9 や $8 のような文字がある例です。パラメータとして数えないことを確かめます。
入力
SQL
SELECT '$9 円', "col$8" FROM t /* $7 */ WHERE price > $1 -- $6
数える書き方
$1, $2…(PostgreSQL の位置パラメータ)だけ
実際に渡す値の個数(任意)
1
結果
エラー 0 件・警告 0 件・情報 0 件
指摘(エラー・警告・情報)
指摘はありません。
| 最大番号 | $1 |
|---|---|
| 使われている番号の数 | 1 個 |
| 欠番 | なし |
プレースホルダの一覧
| プレースホルダ | 出現回数 | 行 |
|---|---|---|
| $1 | 1 | 1 行目 |
検算(この結果になる理由)
'$9 円' は文字列、"col$8" は二重引用符つき識別子、/* $7 */ はコメント、-- 以降も行コメントなので、4.1.1・4.1.2.1・4.1.5 節により数えません。残る $1 だけが位置パラメータで、渡す値 1 個と一致し指摘は 0 件です。
判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。
このツールの制約
- 型の推論(PREPARE の型リストと実際の値の型の対応)は判定しません。番号と個数を数えるだけです。
- 完全な SQL の構文解析はしません。関数本体の $1 など、文脈で意味が変わる使い方は字句のとおりに数えます。
- ? と :名前 は PostgreSQL 自体の記法ではなく、ドライバーなどの別の層の書き方です。数えるのは見つけた個数だけで、仕様の根拠はありません。
- 貼り付けた SQL の実行や、DB への接続はできません。
ご利用にあたって
- 結果は字句の読み取りにもとづく確認で、実際のクエリが正しく実行できることを保証するものではありません。
- ドキュメントは PostgreSQL License で公開されています。このサイトはその内容を要約して参照しており、転載はしていません。