Wie Holen Sie die cursor-Daten in oracle gespeicherten Prozedur
create or replace
PROCEDURE get_new
AS
CUST_ID varchar2(100);
ROUTERNAME_N VARCHAR2(100);
BEGIN
CURSOR c1 IS
SELECT TRAFFIC_CUST_ID,ROUTERNAME INTO CUST_ID,ROUTERNAME_N
FROM INTERFACE_ATTLAS
WHERE rownum > 3;
my_ename INTERFACE_ATTLAS.TRAFFIC_CUST_ID%TYPE;
my_salary INTERFACE_ATTLAS.ROUTERNAME%TYPE;
LOOP
FETCH c1 INTO my_ename;
FETCH c1 INTO my_salary;
EXIT WHEN c1%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(my_ename);
end loop;
end;
Ich bin neu in oracle gespeicherte Prozeduren. Ich werde versuchen, die Zeilen mit dem cursor Holen, und bekommen folgende Fehlermeldung:
PLS-00103: Encountered the symbol "C1" when expecting one of the following:
:= . ( @ % ;
InformationsquelleAutor user3829086 | 2014-07-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Umschreiben es wie folgt:
Vergessen Sie nicht, öffnen und schließen von Cursorn. Es wird immer nichts drucken, weil der
rownum > 3;
Sie wollte Typ:rownum < 3;
, nicht wahr?Es werden keine Fehler angezeigt, aber keine Daten anzeigen.
wie ich schon sagte: "Es wird immer nichts drucken, weil der rownum > 3;" Sie haben zu ändern
rownum > 3
zurownum < 3
wenn Sie möchten, um zu sehen, zwei Sätze nur, oder entfernen Sie ihn, wenn Sie wollen, um zu sehen, jeden Datensatz der TabelleInformationsquelleAutor zaratustra
Sollten Sie vielleicht erklären Sie Ihren cursor und Variablen
my_ename
undmy_salary
im speziellen Bereich, d.h. vor derBEGIN
, und öffnen Sie dann Ihren cursor:InformationsquelleAutor Emmanuel
Müssten Sie erklären den Cursor, bevor Sie BEGINNEN. Verwenden Sie keine INTO-Klausel in der cursor-Deklaration. Dann müssten Sie zum ÖFFNEN des cursor. Dann würden Sie
FETCH INTO my_ename, my_salary
, nicht eins nach dem anderen (Sie abrufen von Zeilen, nicht in Spalten).WHERE rownum > 3
gibt keine Zeilen zurück. Als Sie nicht möchten, dass Sie eine erste Zeile, du bekommst nie eine zweite, Dritte und vierte.Und Sie können einen impliziten cursor, die einfacher zu handhaben (keine Notwendigkeit, Sie zu öffnen, abrufen und schließen explizit):
InformationsquelleAutor Thorsten Kettner
Cursor deklariert werden im Deklarationsteil. Dann öffnen Sie in begin-end-Abschnitt. In der Erklärung Abschnitt, den Sie nicht zuordnen können Wert-variable. Wenn Sie Holen mit dem Wert kann man nicht wählen nach dem Zufallsprinzip Wert zu bilden cursor,
modifizierte code:
InformationsquelleAutor Birma Ram