2 varchars zusammen bzw anhängen fassen

Ich möchte gerne das zeichen immer demresult anhängen

Lieder klappt ein einfaches concat mittel ||*nicht. Scheinbar muss ich nochwas casten find aber die Lösung nicht.

DROP FUNCTION generate_voucher_code();
CREATE OR REPLACE FUNCTION generate_voucher_code() RETURNS varchar AS $$
DECLARE
  i int4;
  j int4;
  chars varchar := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  result varchar;
BEGIN
  for i in 1 .. 16 loop
    j := int4(random()*35)+1;
    result = substring(chars, j, 1);
  end loop;
  return result;
END;
$$ LANGUAGE 'plpgsql';
SELECT generate_voucher_code();

An welcher Stelle ist denn deine String-Concatenation?

Andreas

Vermutlich wirst Du das nun noch in Deine Schleife einbauen und vermutlich wird es dann auch noch nicht gehen. Dein nächster Fehler wird sein, daß Deine Variable ‘result’ nicht initialisiert und somit NULL ist. Und NULL || ‘x’ ist nunmal wieder NULL.


Andreas

hab erstmal nur das funktioniernde gepostet.

habe schon mehrere sachen probiert. das sollte eignetlich meiner meinung nach schon reichen tut es aber nicht.

result = result  || substring(chars, j, 1);

Castin mit ::TEXT oder ::VARCHAR habenb nicht geklappt.
immer das gleiche ergebnis -> Leeres Feld

danke das wars, die initialisierung :smiley: