2016-05-12 10 views
-1

Ich erstelle dieses Verfahren, um Informationen aus einer Datenbank abzurufen. Dies ist meine erste Erstellung einer Prozedur. Ich bekomme immer einen Fehler um die Parameter, die ich beim Erstellen der Prozedur einstellen möchte. Es sagt etwas in Richtung der Erwartung eines anderen Symbols, wo das Semikolon ist. Jetzt erhalte ich einen Fehler um meine SQL-Anweisung, inkonsistente Datentypen: erwartete DATUM bekamPL SQL Prozedurfehler

CREATE OR REPLACE PROCEDURE HIREDATE 
(
D_ID IN EMP.DEPARTMENT_ID%TYPE; 
H_YEAR IN EMP.HIRE_DATE%TYPE; 
) 
-- 
AS 
-- 
v_Last    VARCHAR2(20);    
v_First    VARCHAR2(25); 
v_HireDate   DATE; 
-- 
BEGIN 
-- 
SELECT LAST_NAME,FIRST_NAME,HIRE_DATE 
INTO v_Last,v_First,v_HireDate 
FROM EMP WHERE DEPARTMENT_ID = D_ID 
AND EXTRACT(YEAR FROM HIRE_DATE) = H_YEAR; 
-- 
DBMS_OUTPUT.PUTLINE(v_Last||','||v_First||'  '||v_HireDate); 
-- 
EXCEPTION 
-- 
WHEN NO_DATA_FOUND THEN 
DBMS_OUTPUT.PUTLINE('No data found for Department '||D_ID); 
-- 
WHEN OTHERS THEN 
DBMS_OUTPUT.PUTLINE('An unexpected error has occurred!'); 
-- 
END; 
+3

In Parameterdefinitionen werden keine Semikolons eingefügt. Kommas. – OldProgrammer

Antwort

1

Ihre Parameter durch Kommata getrennt werden sollten (,). Sie haben Semikolons.

CREATE OR REPLACE PROCEDURE HIREDATE(
D_ID IN EMP.DEPARTMENT_ID%TYPE, 
H_YEAR IN EMP.HIRE_DATE%TYPE) AS ...