Printf in SQL Anywhere

Eine Printf-Funktion gibt es in vielen Programmiersprachen. Damit kann man Strings zusammenbauen, die aus fest definierten Bestandteilen sowie dynamischen Variablen bestehen.

Auch in einer SQL Anywhere-Prozedur kann man diese Funktionalität nutzen. Es gibt dazu eine Systemprozedur xp_sprintf.

Wichtig dabei ist, dass diese mit der Zielvariable als ersten Parameter aufgerufen wird. Es handelt sich also nicht um eine Funktion, die einen Wert liefert, den man der Zielvariable zuweisen kann.

DECLARE ls_anrede VARCHAR(100);
DECLARE ls_vorname VARCHAR(50);
DECLARE ls_nachname VARCHAR(50);

SET ls_vorname = 'James';
SET ls_nachname = 'Bond';

CALL xp_sprintf(ls_anrede, 'Hallo %s %s', ls_vorname, ls_nachname);

Dieses Snippet hätte als Ergebnis in der Variable ls_anrede den Wert Hallo James Bond.

Mehr dazu auf Technotes.

#SQL