Как я могу исправить эту ошибку создания тела пакета? - PullRequest
0 голосов
/ 14 мая 2019

Я делаю пакет для сбора какой-то функции в том же месте.Но хотя я пытаюсь создать тело, оно всегда выдает ошибку

Я перепробовал все, что знаю, но неважно, насколько много я пробую, всегда выдает ту же ошибку

Этомой пакет, который не приносит мне никакой ошибки.

create or replace PACKAGE talde_paquete AS
procedure editaldeak(Equipo Taldeak.Kod_taldea%TYPE, Nombre Taldeak.izena%TYPE, Localidad Taldeak.Herria%TYPE, Correo taldeak.helbide_elektronikoa%TYPE,Campo Taldeak.Zelaia%TYPE);
procedure equipopartidos(Equipo partidak.talde1%TYPE);
END talde_paquete;

И это тело моего пакета, которое приносит мне всегда одну и ту же ошибку

CREATE OR REPLACE PACKAGE BODY talde_paquete 
IS
procedure editaldea(Equipo Taldeak.Kod_taldea%TYPE, Nombre Taldeak.izena%TYPE, Localidad Taldeak.Herria%TYPE, Correo taldeak.helbide_elektronikoa%TYPE,Campo Taldeak.Zelaia%TYPE)
AS
VTaldea NUMBER(1);
Taldenoexist EXCEPTION;
BEGIN
    SELECT COUNT(Kod_Taldea) INTO VTaldea FROM Taldeak WHERE Kod_Taldea=Equipo;
    IF VTaldea=1 THEN
        UPDATE Taldeak SET Izena=Nombre, Herria=Localidad, Helbide_Elektronikoa=Correo, Zelaia=Campo WHERE Kod_taldea=Equipo;
    ELSE
        RAISE Taldenoexist;
    END IF;
EXCEPTION
    WHEN Taldenoexist THEN
       DBMS_OUTPUT.PUT_LINE('Taldea ez da existitzen');
END editaldea;
procedure equipopartidos(Equipo partidak.talde1%TYPE)
IS
    CURSOR PartidoEquipo IS
        SELECT Talde1, Talde2, P_Data FROM Partidak WHERE Talde1 LIKE Equipo OR Talde2 LIKE Equipo;
    E1 Partidak.Talde1%TYPE;
    E2 Partidak.Talde2%TYPE;
    Fecha Partidak.P_Data%TYPE;
    existe NUMBER(3);
    Taldexist EXCEPTION;
BEGIN
    SELECT COUNT(Talde1) INTO existe FROM partidak WHERE Talde1=Equipo OR Talde2=Equipo;
    IF (existe>0)THEN
    OPEN PartidoEquipo;
    FETCH PartidoEquipo INTO E1,E2,Fecha;
    WHILE PartidoEquipo%FOUND LOOP
        DBMS_OUTPUT.PUT_LINE(E1||' taldeak '||E2||' taldearen aurka jokatuko du '||Fecha);
        FETCH PartidoEquipo INTO E1,E2,Fecha;
    END LOOP;
        CLOSE PartidoEquipo;
    ELSE
    RAISE Taldexist;
    END IF;
EXCEPTION
    WHEN Taldexist THEN
        DBMS_OUTPUT.PUT_LINE('Taldea ez da existitzen');
END equipopartidos;
END talde_paquete;
/

А вотошибка, которая приводит меня, когда я пытаюсь запустить скрипт тела.

LINE/COL  ERROR
--------- -------------------------------------------------------------
0/0       PL/SQL: Compilation unit analysis terminated
1/14      PLS-00905: object BIZKAIABASKET.TALDE_PAQUETE is invalid
1/14      PLS-00304: cannot compile body of 'TALDE_PAQUETE' without its specification
Errors: check compiler log

Я буду благодарен всем, кто попытается мне помочь

1 Ответ

0 голосов
/ 15 мая 2019

@ hotfix абсолютно прав, сообщение об ошибке при компиляции вполне понятно. Определение процедур в теле должно быть таким же, как определено в заголовке, я замечаю, что есть разница в названии editaldeak против editaldea

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...