Ich habe eine PL/SQL gespeicherte Prozedur zu schreiben, alle Zeilen aus einer ausgewählten Tabelle zu extrahieren, die in einer Datenbank ich so etwas wie dies versucht habe:in Ausgabeparameter
create or replace PROCEDURE ANAGRAFICA_GET (
ID_O OUT NUMBER
NOME_O OUT VARCHAR2(25),
COGNOME_O OUT VARCHAR2(25),
DATA_NASCITA_O OUT VARCHAR2(25),
CITTA_NASCITA_O VARCHAR2(25),
GENERE_O OUT VARCHAR2(25),
OCCUPAZIONE_O OUT VARCHAR2(25)
)
AS
CURSOR RESULTS IS
SELECT ID,NOME,COGNOME,DATA_NASCITA,CITTA_NASCITA,GENERE,OCCUPAZIONE
FROM TAB_ANAGRAFICA;
ESTRAZIONE TAB_ANAGRAFICA%ROWTYPE;
LAST_ID INT;
FIRST_ID INT;
BEGIN
SELECT ID
INTO LAST_ID
FROM TAB_ANAGRAFICA
WHERE ROWNUM <=1
ORDER BY ID DESC;
SELECT ID
INTO FIRST_ID
FROM TAB_ANAGRAFICA
WHERE ROWNUM <=1
ORDER BY ID ASC;
OPEN RESULTS;
FOR i IN FIRST_ID .. LAST_ID LOOP
FETCH RESULTS INTO ESTRAZIONE;
ID_O := ESTRAZIONE.ID;
NOME_O := ESTRAZIONE.NOME;
COGNOME_O := ESTRAZIONE.COGNOME;
DATA_NASCITA_O := ESTRAZIONE.DATA_NASCITA;
CITTA_NASCITA_O := ESTRAZIONE.CITTA_NASCITA;
GENERE_O := ESTRAZIONE.GENERE;
OCCUPAZIONE_O := ESTRAZIONE.OCCUPAZIONE;
END LOOP;
CLOSE RESULTS;
END;
Aber wenn ich die gespeicherte Prozedur ausführe, kann ich nur die letzte Reihe in den Ausgangsvariablen sehen; Stattdessen, wenn ich versuche, einen dbms_outputline-Befehl in der Schleife zu schreiben, wenn ich die Prozedur ausführen, kann ich sehen, dass in der Lage ist, alle Daten abzurufen. Wie kann ich dieses Problem lösen? Wie kann ich einen resulset anstelle eines einzelnen Datensatzes im Bereich der Ausgabevariablen erhalten? Danke an alle Marco
Das funktioniert gut, wenn ich alle Werte in einen Cursor zurückkehren wollen ... Aber ich brauche das verwenden ganz Liste von Namen, die gesamte Liste der cogmome und so weiter getrennt, dh Wurzel -NOME (Liste) -COGNOME (Liste) -.... Weil ich all dieser Liste in einer externen Umgebung verwenden muß –
Ich denke, das passiert, weil ich die Variablen außerhalb der Schleife ausgeben –
Ich verstehe nicht, was Sie meinen. Auf diese Weise übergeben Sie den Cursor an Ihre externe Umgebung. Dann kann die externe Umgebung durchgehen und auf jeden Datensatz mit allen von Ihnen benötigten Werten zugreifen. – Thor