Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana cara mengembalikan beberapa baris dari prosedur tersimpan Oracle dari beberapa kursor?

Saran saya adalah memasukkan baris dari kursor Anda ke tabel sementara. Kemudian gabungkan tabel sementara dengan tabel yang ada untuk kriteria filter yang Anda sebutkan. 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sql query untuk menghitung jumlah dan menambahkan jumlah dari baris sebelumnya

  2. oracle peningkatan ID hibernasi

  3. Pemicu alternatif untuk dua tabel yang harus saling memperbarui

  4. Oracle SQL membandingkan tanggal

  5. PHP:oci_bind_by_name dan bidang stempel waktu menghasilkan ORA-01461:dapat mengikat nilai PANJANG hanya untuk dimasukkan ke dalam kolom PANJANG