2017-11-27 2 views
0

Ich habe eine Funktion, die eine Buchstabenliste des Alphabets zurückgeben sollte. Ich erhalte eine Tabelle mit der richtigen Größe mit nichts darin. Mein Code:Nummer in eine Liste von Zeichen umwandeln

CREATE OR REPLACE FUNCTION p_get_list(IN nb integer) 
RETURNS TABLE(strconcat text) AS 
$BODY$DECLARE 
i integer; 
j integer; 
r integer; 
strconc text; 

BEGIN 
    j=ASCII('A'); 
    FOR i IN 1..nb LOOP 
     r=j+i-1; 
     SELECT chr(r) INTO strconc; 
     RETURN NEXT; 
    END LOOP; 
end if; 

END;$BODY$ 

Dank.

+0

ist es, was Sie zu tun versuchen: 'select chr (a) aus generate_series (ascii ('A'), ascii ('A') +25,1) a; '? .. –

+0

Ja genau danke! – smiss

+0

Nein, da die Längenreihen unterschiedlich sein können und die Länge durch nb.so gebixed wird, ersetze ich 25 durch nb – smiss

Antwort

0

können Sie Funktion bestehenden Wiederverwendung generate_series für sie, zum Beispiel:

t=# select chr(a) from generate_series(ascii('A'),ascii('A')+25,1) a; 
chr 
----- 
A 
B 
C 
D 
E 
F 
G 
H 
I 
J 
K 
L 
M 
N 
O 
P 
Q 
R 
S 
T 
U 
V 
W 
X 
Y 
Z 
(26 rows) 
Verwandte Themen