2014-06-30 6 views
10

Sto cercando di salvare un insieme di ID in ordine:Come SELEZIONARE INTO una serie di numeri in Oracle PL/SQL?

declare 
cities_ids array_of_numbers; 
begin 
select id into cities_ids from objects where id = 1115464; 
    FOR i IN 1..cities_ids.COUNT LOOP 
     DBMS_OUTPUT.PUT_LINE(cities_ids(i)); 
    END LOOP; 
end; 

Dopo l'esecuzione, ho avuto la prossima errore:

ORA-00932: inconsistent datatypes. Expected UDT, got NUMBER. 

Si prega di spiegare che cosa ho fatto di sbagliato ...

+0

Guardare [qui] (http://www.experts-exchange.com/Database/Oracle/Q_26235824.html) forse questo ti aiuta. – Jens

risposta

18

Molto semplice: BULK COLLECT mancante.

declare 
cities_ids arrayofnumbers; 
begin 
select object_id BULK COLLECT into cities_ids from nc_objects where object_id = 1000; 
    FOR i IN 1..cities_ids.COUNT LOOP 
     DBMS_OUTPUT.PUT_LINE(cities_ids(i)); 
    END LOOP; 
end; 
+0

Grazie, amico! Aiuta! –

Problemi correlati