Oracle SP geben PLS-00201 ORA-06550 Fehler
Habe ich eine SP wie folgt:
Der Zweck ist die pass-2 params zu xyz.
Die SP xyz liest Datensätze aus einer Tabelle t1 und speichern Sie in einem cursor.
xyz wird wiederum ein SP sp2 in einer Schleife mit der gespeicherten Datensätze in den cursor.
Als ich versuchte, führen Sie diese in KRÖTE, ich habe den Fehler
ORA-06550: line 2, column 3:
PLS-00201: identifier 'abc.xyz' must be declared
ORA-06550: line 2, column 3:
PL/SQL: Statement ignored
create or replace PROCEDURE abc.xyz(year IN number, ver IN number)
IS
cursor my_cur (year IN number, ver IN number) IS
select p1, p2, p3,
p4, p5, p6
from abc.t1
where p2=year
and p3=ver;
my_row my_cur%rowtype;
params varchar2(1000);
BEGIN
for IN my_cur(year, ver) loop
params := '' || my_row.p1 || '' ||','
|| my_row.p2 || ','
|| my_row.p3 || ','
|| my_row.p4 || ','
|| my_row.p5 || ','
|| '' || my_row.p6 || ''
dbms_output.put_line(params);
exec sp2(params);
params := '';
end loop;
END;
- Meinst du so erstellen Sie eine Prozedur mit einem Namen mit einem Punkt drin? Oder wollen Sie wirklich, um ein Paket zu erstellen, das Verfahren in der it?
- Ich bin mit dem SP, ich würde gerne wissen, wie das hinzufügen einer einzelnen zitieren, um my_row enthält.p1 in die params. Können Sie mir sagen, wie zu tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist eine Zusammenstellung
exec innerhalb von PLSQL-block ist keine gültige syntax. exec ist eine Abkürzung für sqlplus begin p; end;
Der Fehler ist im Grunde sagen Sie es gibt keine GÜLTIGE (kompiliert) Prozedur mit diesem Namen, oder heißt du mit falsche Art/Anzahl von Parametern!
Hast, deinen code zu kompilieren? Es hatte 2 Fehler und ich poste hier mit Korrekturen.