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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mein Vorschlag wird sein, legen Sie die Zeilen aus dem cursor in eine temporäre Tabelle. Verbinden Sie dann die temporäre Tabelle mit der bereits existierenden Tabelle für die Filterkriterien, die Sie erwähnen. Psuedocode:
Als Sie gesehen haben, den code,was ich Tue ,ist, um das gewünschte Ergebnis zu erhalten, in
nested table
(, was dein Mauszeiger macht) ,und einige manipulation auf der Basis der resultierenden Datensätze ,sowie update der geschachtelten Tabelle.Am Ende will ich einen cursor erstellen, von dieser
updated nested table
- und return den cursor nach dem öffnen.Nun Ihre Frage :
How can you return append cursor
?Es ist einfach
create two nested table ,do some manipulation on both the nested table
Angenommen, Sie haben
v_emp_nt1
alsfirst nested table
Sie tun, eine manipulation auf, dass .Sie haben weitere
v_emp_nt2
alssecond nested table
Sie tun, eine manipulation auf, dass .Nun Ihre
cursor
werden wieMit diesem Weg erreichen Sie Ihre gewünschte Ausgabe .
**Hinweis:**Der obige code ist für eine geschachtelte Tabelle ,die Sie brauchen, um einen anderen zu erstellen verschachtelte Tabelle für Ihren code zu bekommen komplett