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?
InformationsquelleAutor TipTop | 2013-10-22
Schreibe einen Kommentar