2016-09-19 6 views
2

Ich schaue durch ein Chaos von (Postgresql) SQL-Code, den ich geerbt habe, und es gibt zwei Stücke der Notation, die verwendet werden, denen ich nicht folgen. Man benutzt $$. Z.B. Create function ... returns FOO as $$ und select NULL::int field_name from table.

Probleme beim googeln wegen Symbolen, und ich bin mir nicht einmal sicher, wonach ich suchen sollte.

+0

Ich hoffe, [Dokumentation] (https://www.postgresql.org/docs/9.5/static/plpgsql-structure.html) wird für Sie hilfreich sein. –

Antwort

4

expression::typename wirft expression zu type typename.

Die Dollarzeichen werden für die Literal-String-Quotierung verwendet. Funktionskörper werden als Klartextstrings an die Datenbank übergeben. Sie könnten dafür auch einfache alte Anführungszeichen verwenden, aber dann werden Sie möglicherweise in Ihrem Funktionskörper zu Entweichenproblemen führen. Daher wird in diesem Fall oft eine Dollarzeichen-Quotierung verwendet.

Beachten Sie auch, dass Dollarzeichen Quoting hat eine leichte Erweiterung, die aussieht wie $somename$string text $$ goes here $somename$ - dies ermöglicht es uns, $$ selbst innerhalb einer solchen Zeichenfolge, zusammen mit möglicherweise die String-Bezeichnung ein kleines bisschen mehr offensichtlich. Dies wird manchmal in Funktionsdefinitionen wie create function x as $body$...$body$ verwendet.