Alles, was ich tun möchte, ist in der Lage, einen do
Block zu verwenden, um einige Variablen festzulegen und dann eine Abfrage an STDOUT
mit diesen Variablen zurückgeben.Zurückgeben einer Abfrage von einem Do-Block
DO $$
DECLARE book_name TEXT;
DECLARE book_slug TEXT;
BEGIN
book_name := 'Ise Monogatari';
book_slug := 'ise';
SELECT bk.id,
bk.created_at,
bk.updated_at,
bk.title,
bk.japanese_title,
bk.content,
bk.description,
'public/cjp/' || book_slug || '/images/cover.png' cover_image_path,
'public/cjp/' || book_slug || '/images/title.png' title_image_path,
'public/cjp/' || book_slug || '/images/thumb_left.png' thumbnail_path,
'public/cjp/' || book_slug || '/images/background.png' background_image_path,
bk.about,
bk.published
FROM books bk
WHERE bk.title = book_name;
END $$;
bekomme ich folgende Fehlermeldung:
[42601] ERROR: query has no destination for result data
Hint: If you want to discard the results of a SELECT, use PERFORM instead.
Where: PL/pgSQL function inline_code_block line 8 at SQL statement
Jede Hilfe sehr geschätzt wird.
Thank you! Wie immer hätte ich das Handbuch sorgfältiger lesen sollen. –
Beim ersten Lesen weiß man nicht, wonach man suchen soll. Aber zum Glück gibt es Stackoverflow! – klin
Wenn Sie ein Datum von do bloack zurückgeben möchten, können Sie auch GUC oder TEMP TABLE verwenden –