Sie müssen SELECT
nicht verwenden zur Funktionsauswertung.
id := to_number((SELECT code FROM buildings WHERE name = building)
|| floor || num::text,
'999999999');
Eine andere Möglichkeit (und normalerweise besser) ist die Verwendung der Funktion in der Ausdrucksliste (Ergebnisfeldliste)
id := (SELECT to_number(code || floor || num::text, '99999999')
FROM buildings WHERE name = building)
Verwenden Sie SELECT
nur wenn Sie eine Datenabfrage benötigen, nicht zur Funktions- oder Variablenauswertung!