-1
Я имею эту ошибку:ошибка в PL/SQL пакета тела
Error (42,22): PLS-00103: Обнаружен символ ")", когда ожидает одно из следующих действий: ток
I написали пакет с несколькими функциями и процедурами.
вот мой пакет:
-- specification --
CREATE OR REPLACE PACKAGE SUPERHERO_PACKAGE AS
FUNCTION GET_FULL_SUPERHERONAME(V_SUPERHERONAME IN VARCHAR2)
RETURN VARCHAR2;
PROCEDURE GET_SUPERHEROS(V_CITY IN VARCHAR2);
PROCEDURE GET_ALL_VILLANS;
FUNCTION GET_MAX_XP
RETURN NUMBER;
FUNCTION GET_STRONGEST_SUPERHERO
RETURN VARCHAR2;
END SUPERHERO_PACKAGE;
-- body --
CREATE OR REPLACE PACKAGE BODY SUPERHERO_PACKAGE AS
FUNCTION GET_FULL_SUPERHERONAME(V_SUPERHERONAME IN VARCHAR2)
RETURN VARCHAR2 AS
BEGIN
SELECT FIRST_NAME, LAST_NAME
INTO V_FNAME, V_LNAME
FROM SUPERHERO
WHERE SUPERHERO_NAME = V_SUPERHERONAME;
RETURN (V_FNAME || " " || V_LNAME);
END;
PROCEDURE GET_SUPERHEROS(V_CITY IN VARCHAR2) IS
CURSOR JUSTICE_LEAGUE IS
SELECT SUPERHERO_NAME FROM SUPERHERO WHERE CITY = V_CITY;
LEAGUE_MEMBER JUSTICE_LEAGUE % ROWTYPE;
BEGIN
OPEN JUSTICE_LEAGUE;
LOOP
FETCH JUSTICE_LEAGUE INTO LEAGUE_MEMBER;
EXIT WHEN (JUSTICE_LEAGUE % NOTFOUND);
DBMS_OUTPUT.PUT_LINE(LEAGUE_MEMBER.NAME);
END LOOP;
CLOSE JUSTICE_LEAGUE;
END;
PROCEDURE GET_ALL_VILLANS IS
CURSOR DARK_FORCE IS
SELECT VILLAN FROM SUPERHERO;
FORCE_MEMBER DARK_FORCE % ROWTYPE;
BEGIN
OPEN DARK_FORCE;
LOOP
FETCH DARK_FORCE INTO FORCE_MEMBER;
EXIT WHEN (DARK_FORCE % NOTFOUND);
DBMS_OUTPUT.PUT_LINE(FORCE_MEMBER.VILLAN);
END LOOP;
CLOSE DARK_FORCE;
END;
FUNCTION GET_MAX_XP()
RETURN NUMBER AS
DECLARE
N_XP := 0;
BEGIN
SELECT MAX(XP) INTO N_XP FROM SUPERHERO;
RETURN N_XP;
END;
FUNCTION GET_STRONGEST_SUPERHERO()
RETURN VARCHAR2 AS
DECLARE
V_NAME := 'DNA';
V_FNAME := 'SWAYAM';
V_LNAME := 'RAINA';
BEGIN
SELECT SUPERHERO_NAME, FIRST_NAME, LAST_NAME
INTO V_NAME, V_FNAME, V_LNAME
FROM SUPERHERO
WHERE XP = GET_MAX_XP();
RETURN (V_FNAME || " " || V_LNAME || " AKA " || V_NAME);
END;
END SUPERHERO_PACKAGE;
Двойные кавычки предназначены для имен идентификаторов, одинарные кавычки предназначены для строковых литералов. Кроме того, ваши последние две функции имеют отклоненные ключевые слова 'declare'. Также заблокирован ваш замок;) –