PL/SQL: Statement ignored in procedure

oracle-12c

I try to create one test procedure but it gets
Error(4,1): PL/SQL: SQL Statement ignored ** and ** Error(12,20): PL/SQL: ORA-00942: table or view does not exist when I try to compile. Then I test select statement in next session, it run successfully. Could you please help me.

create or replace PROCEDURE TEST_1
AS
BEGIN
SELECT
A.EMPLOYEE_ID AS "Employee ID",
A.FIRST_NAME||' '||A.LAST_NAME AS "Name",
B.DEPARTMENT_NAME AS "Department Name",
A.EMAIL AS  "Email Address",
A.PHONE_NUMBER AS "Contact Number",
C.STREET_ADDRESS||', '||C.CITY||', '||NVL(C.STATE_PROVINCE,C.CITY) AS "Address"
FROM HR.EMPLOYEES A 
LEFT OUTER JOIN HR.DEPARTMENTS B
ON A.DEPARTMENT_ID = B.DEPARTMENT_ID
LEFT OUTER JOIN HR.LOCATIONS C
ON B.LOCATION_ID = C.LOCATION_ID;
END;

Best Answer

Looks like a right problem. Do you realy need "HR." ?

Try

create PROCEDURE TEST_1 AS BEGIN 
CURRENT_USER
SELECT A.EMPLOYEE_ID AS "Employee ID",
         A.FIRST_NAME || ' ' || A.LAST_NAME AS "Name",
         B.DEPARTMENT_NAME AS "Department Name",
         A.EMAIL AS "Email Address",
         A.PHONE_NUMBER AS "Contact Number",
         C.STREET_ADDRESS || ', ' || C.CITY || ', ' ||
         NVL(C.STATE_PROVINCE, C.CITY) AS "Address"
    FROM EMPLOYEES A
    LEFT OUTER JOIN DEPARTMENTS B
      ON A.DEPARTMENT_ID = B.DEPARTMENT_ID
    LEFT OUTER JOIN LOCATIONS C
      ON B.LOCATION_ID = C.LOCATION_ID;
END;

And have a look at GRANT (for example)

GRANT EXECUTE ON PROCEDURE <user>.test_1 TO <role>