Mit For-Schleife abrufen mehrerer Zeilen in Oracle-Prozedur
Im arbeiten auf die gespeicherte Prozedur, wo ich abrufen müssen eine Reihe von Ergebnissen und Verfahren jedes element einzeln und dann wieder die gesamte Folge.(mit 3 verschiedenen Tabellen)
Im nicht allzu vertraut mit Datenbanken, aber heres, was ich war in der Lage zu kommen mit..
create or replace procedure GET_EMP_RSLT
IS
CURSOR ecursor IS select emp_id from temp_employee where 'some condition';
BEGIN
FOR empidset in ecursor
LOOP
Select * from
(select * from payroll_info where emp_id = empidset.emp_id) a
left join
(select * from benefit_info where emp_id = empidset.emp_id) b
on a.emp_id = b.emp_id
END LOOP;
END;
Bei der Ausführung, bekomme ich folgende Fehlermeldung..
an INTO clause is expected in this SELECT statement : "Select * from"
kann bitte jemand erklären, wie ich diesen Fehler beheben und erhalten die gewünschten Ergebnisse?
PS. Im mit Oracle 9i & TOAD 9
Dank,
Tom
InformationsquelleAutor tom | 2010-08-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
WÄHLEN Sie die Innenseite der Schleife haben muss, um eine INTO-Klausel, um die Werte verarbeiten - es ist nicht klar aus dem code, was Sie zu tun versuchen, aber ich vermute, der geschachtelte SELECT/JOIN innerhalb der cursor-Schleife könnte besser geschrieben als die drei Tabellen-join in der Haupt-cursor.
InformationsquelleAutor dpbradley
Unten ist eine mögliche Lösung, um eine ganze Reihe von Annahmen. Wie geschrieben, es gibt das Ergebnis als einen ref-cursor mit Daten aus allen 3 Tabellen (es wäre trivial, um es wieder einen ref-cursor für jede Tabelle, aber das wäre mehr Arbeit für ein fragwürdiges Ergebnis).
Jedoch, wenn Sie wirklich etwas in der PL/SQL, die Sie nicht tun können in SQL, Sie wäre viel besser dran, tun Sie dies direkt in SQL.
InformationsquelleAutor Allan
Müssen Sie eine INTO-Klausel, um anzugeben, welche lokalen Variablen die ausgewählten Daten, wie zB.
InformationsquelleAutor a'r
Gibt es zu viele syntaktische und ideologischen Fehler in deinem code.
Daher Lesen Sie bitte, PL/SQL-Dokumentation hier, vor allem PL/SQL-Architektur Abschnitt zu verstehen, den Unterschied zwischen SQL und PL/SQL (im Allgemeinen SQL - Abfragesprache, PL/SQL - Programmiersprache) und Teile für Ihren Fall:
Volle PL/SQL-Referenz für Oracle 9i R2 verfügbar unter dieser link.
Menge aller Oracle 9i R2-Dokumentation finden Sie hier.
InformationsquelleAutor ThinkJet