$n と ? と :名前 の混在

ORM の書き方とドライバーの書き方が 1 つの SQL に混ざってしまった例です。別方言の記法も数えるモードで、混在の警告が出ることを確かめます。

入力

SQL

SELECT * FROM t WHERE a = ? AND b = :name AND c = $1

数える書き方

? と :名前 も数える(別方言・ドライバー向け)

実際に渡す値の個数(任意)

(空)

結果

エラー 0 件・警告 1 件・情報 0 件

指摘(エラー・警告・情報)

  • 警告 全体 $n・?・:名前 が混在しています。PostgreSQL の PREPARE が使うのは $n だけで、? と :名前 はドライバーなど別の層の書き方です。1 種類にそろえてください。
最大番号$1
使われている番号の数1 個
欠番なし
? の数1 個
:名前 の数1 種類

プレースホルダの一覧

プレースホルダの一覧
プレースホルダ出現回数行
$111 行目
?1(順番に数える別方言の書き方)
:name11 行目

検算(この結果になる理由)

$1 が 1 個、? が 1 個、:name が 1 種類見つかり、3 つの書き方が混在しているため警告が 1 件です。PostgreSQL の PREPARE が使うのは $n だけなので、1 種類にそろえるよう案内します。

判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。

このツールの制約

ご利用にあたって

  • 結果は字句の読み取りにもとづく確認で、実際のクエリが正しく実行できることを保証するものではありません。
  • ドキュメントは PostgreSQL License で公開されています。このサイトはその内容を要約して参照しており、転載はしていません。

ほかの入力例