2016-07-14 5 views
0

ich Toad bin mit und es gibt eine Tabelle mit dem Namen MyTable, hat es eine Spalte mit dem Namen INFO:
INFO
abcd
efgh
ijkl
Toad: Wie Schleife ein resultset ausgewählten

Was ich brauche ist, die Elemente von INFO eins nach dem anderen zu nehmen und Aufgaben zu erledigen. Also ich glaube, ich brauche so etwas wie unten:

foreach (select INFO from MyTable) 
    print 
end 

Ich habe versucht, Google, und es scheint, dass ich CURSOR verwenden soll. So versuchte ich, wie folgt aus:

DEF msg varchar2(15); 

cursor cr is 
    select info from mytable; 

begin 
    OPEN cr; 
    loop 
    FETCH cr into msg; 
    exit when cr%NOTFOUND; 
    -- do job 
    end loop; 
    CLOSE cr; 
end; 

Aber ich habe einen Fehler:

cursor cr is
Error at line 3
ORA-00900: invalid SQL statement
Script Terminated on line 3.

Antwort

1

Offensichtlich Sie einen PL/SQL Block ausgeführt werden soll, aber DEF ist kein Teil von PL/SQL. Versuchen Sie, folgende Block ausführen:

declare 
msg varchar2(15); 
cursor cr is 
    select info from mytable; 
begin 
    OPEN cr; 
    loop 
    FETCH cr into msg; 
    exit when cr%NOTFOUND; 
    -- do job 
    end loop; 
    CLOSE cr; 
end; 

Sie auch das gleiche zu tun cursor for loop statement

begin 
    for rec in (
    select info from mytable 
) loop 
     -- do job (you can reference info by using rec.info) 
    end loop; 
end; 
mit