引用符の二重化・連結・ドル引用符が混ざった SQL

'' で書いた引用符、改行で連結した 2 つの文字列、ドル引用符の本文、二重引用符つきの列名、コメントが 1 つの SQL に入った例です。何が文字列として取り出されるかを確かめます。

入力

SQL

SELECT 'it''s', 'foo'
'bar', $f$ x'y $f$, "col'x" -- 'no'

E'…' と U&'…' のエスケープを展開して表示する

はい

結果

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

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

  • 情報 1 行目 2 つの文字列が改行をはさんで並んでいるため、1 つの定数に連結しました(4.1.2.1)。
文字列リテラルの数3 個
通常 '…'2 個
E'…'0 個
U&'…'0 個
ドル引用符1 個

文字列リテラルの一覧

文字列リテラルの一覧
#種類開始位置内容
1通常 '…'1 行目it's
2通常 '…'1 行目foobar
3ドル引用符 $f$2 行目 x'y

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

'it''s' は it's(4.1.2.1 節)。'foo' と 'bar' は間に改行があるので foobar の 1 つに連結されます。$f$ x'y $f$ はドル引用符で本文が ' x'y '。"col'x" は識別子、-- 以降はコメントで対象外です。取り出す文字列は 3 個、連結の情報が 1 件です。

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

このツールの制約

ご利用にあたって

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

ほかの入力例