Вы пропустили несколько точек с запятой, у вас слишком много круглых скобок, неправильно установлено значение AVAIL_PROP
...
Вот фиксированный код, который должен скомпилировать.
CREATE OR REPLACE PROCEDURE validagent (p_agent_id IN agent.agent_id%TYPE)
AS
p_errorcode NUMBER; --USED FOR ERROR CHECKING
p_errormsg VARCHAR2 (200);
p_currentuser VARCHAR2 (100);
avail_prop NUMBER;
BEGIN
SELECT CASE
WHEN EXISTS
(SELECT property.prop_id
FROM property
WHERE property.agent_id = agent.agent_id)
THEN
1
ELSE
0
END
INTO avail_prop
FROM DUAL;
IF avail_prop = 1
THEN
SELECT property.prop_id
INTO avail_prop
FROM property
WHERE (property.agent_id != '1')
OR property.agent_id IS NULL
AND ROWNUM = 1;
UPDATE property
SET property.agent_id = p_agent_id
WHERE property.prop_id = avail_prop;
DBMS_OUTPUT.put_line ('Success');
ELSE
DBMS_OUTPUT.put_line ('Failure');
END IF;
END;