sql >> Database >  >> RDS >> Oracle

Hoe kan ik meerdere rijen uit de in orakel opgeslagen procedure van meerdere cursors retourneren?

Mijn suggestie is om de rijen van je cursor in een tijdelijke tabel in te voegen. Voeg vervolgens de tijdelijke tabel samen met uw bestaande tabel voor de filtercriteria die u noemt. Psuedocode:

create or replace function my_func
return sysrefcursor
is
    cursor cursor_one is 
        SELECT * FROM table_one ; 

    cursor cursor_two is 
        SELECT * FROM table_one ; 
    BEGIN    

     FOR current_row in cursor_one
      loop 

          -- do some modification on each row and insert into temporary table

      end loop; 



     FOR current_row in cursor_two
      loop 

          -- do some modification on each row and insert into temporary table

      end loop; 


    -- results from cursor 1 and 2 exist in temporary table

    open out_cursor for
     select t.* from
      my_temp_table t
      join
      my_other_table tt
      on (t.col1 = tt.col1) -- or whatever columns are appropriate
      where t.col2 = 'some criteria' -- or whatever filter criteria you like.

    return out_cursor;

    END;  


  1. Beste methode om relationele afhankelijkheden op meerdere niveaus te verifiëren

  2. Gegevens van vorige week ophalen in MySQL

  3. Mysql transacties binnen transacties

  4. MySQL:eigendom van mysql-map verandert in 'mysql' van 'service_account' bij het opnieuw opstarten van de linux-server