SQL Anywhere 9 Curser-Probleme

blackhawk2101

Grünschnabel
Hallo,
Ich habe Probleme mit meiner Curser-Funktion .
Warum geht die nicht? , kann mir da jemand helfen?
Beschreibung :
forkchoiceid = wird zum ordnen genommen nicht weiter wichtig
ugcchoiceid = child
ugcparentchoiceid = parent
Fehler : " Wrong number of variables in FETCH"
Ziel : Es soll mit Hilfe des Cursers, der Baum ausgelesen werden , wobei die Tiefe des Baums unbekannt ist.

SQL:
BEGIN
DECLARE test int ; 
DECLARE _cursor CURSOR FOR 
SELECT forkchoiceid,ugcchoiceid,ugcparentchoiceid FROM ugcchoicelist WHERE ugcparentchoiceid = 610781;
 
OPEN _cursor;
FETCH NEXT _cursor into test ;
PRINT test;
CLOSE _cursor;
END;

Danke im Voraus ;)
 
Zuletzt bearbeitet von einem Moderator:
OK den Fehler hab ich gelöst.
Nun gibt es einen neuen Fehler: Es wird nichts ausgegeben .

v.2
SQL:
BEGIN
DECLARE test int  ; 
DECLARE test2 int  ;
DECLARE test3 int  ;
DECLARE abc int ; 
DECLARE _cursor CURSOR FOR 
SELECT forkchoiceid,ugcchoiceid,ugcparentchoiceid FROM ugcchoicelist WHERE ugcparentchoiceid = 610781;
OPEN _cursor;
SET abc = 0;
CustomerLoop:
Loop 
if abc<=10 then leave CustomerLoop ; 
end if; 
FETCH NEXT _cursor into test,test2,test3;
PRINT test,test2,test3;
end loop CustomerLoop ;
CLOSE _cursor;
END;
 
Zuletzt bearbeitet von einem Moderator:
So ich habe jetzt die Fehler alle behoben nur komme ich nicht an mein Ziel.
Wie kann ich mir jetzt die Kinder anzeigen lassen?

SQL:
BEGIN
DECLARE forkchoiceid int  ; 
DECLARE ugcchoiceid int  ;
DECLARE ugcparentchoiceid  int  ;
DECLARE phrase char(20)  ;
DECLARE abc int ; 
DECLARE LEVEL int ; 
DECLARE _cursor CURSOR FOR 
SELECT forkchoiceid,ugcchoiceid,ugcparentchoiceid,phrase FROM ugcchoicelist
JOIN phrase ON ugcphraseid = phraseid
WHERE ugcparentchoiceid = 610781 and languageid = 4
order by forkchoiceid  ;
OPEN _cursor;
SET abc = 0;
SET LEVEL = 0;
CustomerLoop:
Loop 
if abc=2 then leave CustomerLoop
end if; 
if abc=1 then set ugcchoiceid = ugcparentchoiceid;
end if ; 
SET abc=abc + 1 ;
SET LEVEL=LEVEL + 1 ;
FETCH NEXT _cursor into forkchoiceid,ugcchoiceid,ugcparentchoiceid,phrase;
select forkchoiceid,ugcchoiceid,ugcparentchoiceid,phrase,LEVEL ; 
end loop CustomerLoop ;
CLOSE _cursor;
END;
 
Zuletzt bearbeitet von einem Moderator:
Zurück