Reputation: 59
create or replace PACKAGE BODY ECOM_LOGIN
AS
FUNCTION AUTHENTICATE(
P_USERNAME IN VARCHAR2 ,
P_PASSWORD IN VARCHAR2)
RETURN BOOLEAN
IS
V_RESULT INTEGER := 0;
L_PASSWORD VARCHAR2(100);
BEGIN
SELECT PASSWORD
INTO L_PASSWORD
FROM MY_USERS
WHERE (UPPER (USERNAME) = UPPER(P_USERNAME)
OR PHONE_NUMBER = P_USERNAME)
AND PIN = 'Y';
IF L_PASSWORD = P_PASSWORD THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
EXCEPTION
WHEN OTHERS THEN
RETURN FALSE;
END AUTHENTICATE;
Upvotes: 1
Views: 75
Reputation: 18650
A closing "END" keyword is missing from the package body:
create or replace PACKAGE BODY ECOM_LOGIN
AS
FUNCTION AUTHENTICATE(
P_USERNAME IN VARCHAR2 ,
P_PASSWORD IN VARCHAR2)
RETURN BOOLEAN
IS
V_RESULT INTEGER := 0;
L_PASSWORD VARCHAR2(100);
BEGIN
SELECT PASSWORD
INTO L_PASSWORD
FROM MY_USERS
WHERE (UPPER (USERNAME) = UPPER(P_USERNAME)
OR PHONE_NUMBER = P_USERNAME)
AND PIN = 'Y';
IF L_PASSWORD = P_PASSWORD THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
EXCEPTION
WHEN OTHERS THEN
RETURN FALSE;
END AUTHENTICATE;
-- line below is needed
END ECOM_LOGIN;
As a side note, a password should never be stored in clear text. Plenty of examples on how to store password on the internet, here is one (old it shows exactly what the point is.
Upvotes: 1