Wie die Rückkehr mehrere Zeilen aus einer oracle-gespeicherten Prozedur, die von mehreren cursors?

Brauche ich, um die gespeicherte Prozedur, wo ich mehrere Cursor.

Schleife über die einzelnen cursor und führen Sie dann eine operation auf jede Zeile.

Diese Weise habe ich das gewünschte Ergebnis aus diesen Cursor. Ergebnis dieser mehrere Cursor muss dann union mit einigen anderen Zeilen und dann herausgefiltert und wieder diese Zeilen endlich aus dem proc.

Bitte beachten Sie, dass jeder cusror und anderen Abfragen wird haben gleichen Spalten.

Ich bin mir nicht sicher, wie dies zu tun in der oracle.

Bitte helfen Sie mir.

        create or replace PROCEDURE test_proc
    (
      -- some inputs 
      hc_cursor OUT SYS_REFCURSOR
    ) 

    IS 

    cursor cursor_one is 
        SELECT * FROM table_one ; 

    BEGIN    

     FOR current_row in cursor_one
      loop 

          -- do some modification on each row and return each modified row

      end loop; 

    cursor cursor_two is 
        SELECT * FROM table_one ; 

    BEGIN    

     FOR current_row in cursor_two
      loop 

          -- do some modification on each row and return each modified row
          -- append to result from first cursor 

      end loop; 


    -- union results from both these cusrors with some another query 
    -- now filter these records on some criterais 
    -- return finally

    END;    
  • Verwenden Sie cursor, um das Ergebnis Holen in Verschachtelten Tabelle und aktualisieren Sie dann die geschachtelte Tabelle, die mit manipulierten Ergebnis .Nach der änderung ,öffnen einen cursor verwenden, die verschachtelte Tabelle ...select * from table(nested_table)...mit dieser Art und Weise können Sie die Rückgabe auch mehrere Ergebnis-cursor
Schreibe einen Kommentar