Wenn Sie den folgenden Code ausführen, wird lediglich angezeigt, dass die Prozedur abgeschlossen ist, und es werden nicht die gewünschten Informationen (Vorname, Nachname) und dann die anderen Werte aus der Auswahlabfrage in einer der folgenden Tabellen gedruckt.
CREATE OR REPLACE PROCEDURE PRINT_ACTOR_QUOTES (id_actor char)
AS
CURSOR quote_recs IS
SELECT a.firstName,a.lastName, m.title, m.year, r.roleName ,q.quotechar from quote q, role r,
rolequote rq, actor a, movie m
where
rq.quoteID = q.quoteID
AND
rq.roleID = r.roleID
AND
r.actorID = a.actorID
AND
r.movieID = m.movieID
AND
a.actorID = id_actor;
BEGIN
FOR row IN quote_recs LOOP
DBMS_OUTPUT.PUT_LINE('a.firstName' || 'a.lastName');
end loop;
END PRINT_ACTOR_QUOTES;
/
Beim Einstellen der Serverausgabe bekomme ich
a.firstNamea.lastName
a.firstNamea.lastName
a.firstNamea.lastName
a.firstNamea.lastName
mehrmals!
quelle
set serveroutput on
Befehl hinzufügen, bevor Sie die Prozedur in SQL * Plus ausführen.SELECT
Anweisung falsch ist und wahrscheinlich eine Verknüpfungsbedingung fehlt. Sie möchten Ihre Abfrage verfeinern (die Sie ohne die Prozedur separat ausführen können), bis die Abfrage die erwarteten Daten zurückgibt.quelle
diese Aussage
bedeutet, die Zeichenfolge so zu drucken, wie sie ist. Entfernen Sie die Anführungszeichen , um die zu druckenden Werte zu erhalten. Die korrekte Syntax lautet also
quelle
Stellen Sie die Abfrage in der ersten Zeile wie folgt ein
quelle
Ich verwende Oracle SQL Developer.
In diesem Tool musste ich die DBMS-Ausgabe aktivieren , um die von dbms_output.put_line gedruckten Ergebnisse anzuzeigen
Sie finden diese Option im Ergebnisbereich, in dem andere Abfrageergebnisse angezeigt werden. Im Ergebnisbereich habe ich also 7 Registerkarten. Die erste Registerkarte heißt Ergebnisse, die nächste ist die Skriptausgabe und so weiter. Daraus finden Sie eine Registerkarte mit dem Namen "DBMS-Ausgabe". Wählen Sie diese Registerkarte aus. Das erste Symbol (sieht aus wie ein Dialogsymbol) lautet " DBMS-Ausgabe aktivieren" . Klicken Sie auf dieses Symbol. Anschließend führen Sie PL / SQL aus und wählen die Registerkarte "DBMS-Ausgabe". Dort sollten die Ergebnisse angezeigt werden.
quelle
Alle konzentrieren sich auf die for-Schleife, aber wenn wir eine normale Schleife verwenden, mussten wir die Cursor-Datensatzvariable verwenden. Das Folgende ist der geänderte Code
quelle