sql >> Databasteknik >  >> RDS >> Oracle

Lös PLS-00323-fel i Oracle

Anledningen till PLS-00323-felet i Oracle är en oöverensstämmelse i procedur eller funktionsdeklaration i paketspecifikationen och paketets kropp. För att lösa detta, vidta följande åtgärder.

Lös PLS-00323-fel i Oracle

  1. Kontrollera paketspecifikationen för alla funktioner och procedurdeklarationer som de ska matcha med paketets innehåll. Nedan är ett exempel på en felaktig procedur.

Paketspecifikation

CREATE OR REPLACE PACKAGE emp_pkg
IS
PROCEDURE update_comm (i_comm IN emp2.sal%TYPE);
a number;

END emp_pkg;
/

Pakettext

CREATE OR REPLACE PACKAGE BODY emp_pkg
IS
PROCEDURE update_comm (i_comm IN emp2.comm%TYPE)
IS
BEGIN
UPDATE emp2
SET comm = sal * NVL (i_comm, 0) / 100;

COMMIT;
END update_comm;
END emp_pkg;
/
  1. Du kan se att den ovan markerade delen av koden har skillnaden. I specifikationen är det emp2.sal%type , och i kroppen är det emp2.comm%type .
  2. För att lösa denna ändring som lämpligt. Ändra till exempel sal till comm i specifikationen eller komma till salu i kroppen.

Hoppas det hjälper.

Se även:

  • Höj exempel på applikationsfel i PL/SQL
  • Hitta felradnummer i PL/SQL
  1. Oracle:'=ANY()' kontra 'IN ()'

  2. Ersätt dubblettutrymmen med ett enda utrymme i T-SQL

  3. Hur många databasindex är för många?

  4. Varför och när en LEFT JOIN med villkor i WHERE-satsen inte motsvarar samma LEFT JOIN i ON?