Oracle-Datensätze aus zwei verschiedenen Tabellen auch ohne Mitgliedschaft
Schreiben brauche ich eine gespeicherte Prozedur, die Daten aus zwei verschiedenen Tabellen. Sagen wir Tabelle1 und Tabelle2. Diese beiden Tabellen keine Beziehung.
Nun in der SQL-Server kann ich erstellen Sie einfach eine gespeicherte Prozeduren wie:
create procedure abc
as
begin
select * from table1;
select * from table2:
end;
Nun in oracle -, ich in der Regel erstellen Sie eine SYS_REFCURSOR und tun Sie etwas wie:
Open SYS_REFCURSOR_VAR For Select * from table1;
aber ich weiß nicht, wie die beiden Folge-sets, die aus zwei verschiedenen Tabellen Tabelle1 und Tabelle2. Ich habe versucht, zwei verschiedene erstellen SYS_REFCURSOR eine für jede Tabelle. Aber wenn ich die Ausführung der Prozedur bekam ich die Daten von der ersten Tabelle nur. Die zweite SYS_REFCURSOR scheint nicht zu funktionieren.
Jemand eine Idee, wie dies zu erreichen?
- Zeigen Sie Ihren code..??!. Wie sind Eure Erklärung Ihrer sys_refcursor und wie sind Sie auf es zu..?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, diese
Also ich nehme an, die Datensätze, die Sie möchten, ziehen aus jeder Tabelle sind im Prinzip die gleichen. z.B. id, name, Preis. In diesem Fall schreiben Sie einfach Ihre Anfrage wie
Nicht sicher, ob benötigt, aber immer eine gute form zu haben, eine union zurückkehren Datensätze mit der gleichen "Spalte" Namen. So habe ich das
AS
im teh Beispiel, um dies zu demonstrierenMüssen Sie zu geben, mehr details zu deinem problem.. speziell
1) der code, den Sie bisher ausprobiert haben
2) Wie werden Sie den Zugriff auf Ihre ref-cursor, um die Ergebnisse zu sehen? (SQLPLUS oder Java oder VB.net)?
Basierend auf Ihrem SQL Server-code, ich gehe davon aus, dass Sie versuchen, die UNION der Zeilen aus den beiden Tabellen. Hier ist der code, in Oracle, können Sie das tun. Wie Sie sehen können, mein client tool hier ist SQLPLUS und ich bin in der Lage, um zu sehen, die Werte aus beiden Tabellen.
Dieses Skript zeigt @Maxim Schewzow Antwort arbeiten. Führen Sie in SQL*Plus