unknown procedure or function [message #632186] |
Tue, 27 January 2015 03:15 |
|
palpali
Messages: 138 Registered: December 2014 Location: India
|
Senior Member |
|
|
Hallo all
i am am getting the following error on my program,
ORA-06550: Line 2, Column4: PLS-00221:'Hire_Emp' is not procedure or not defined
ORA-06550: Line 2, Column4: PL/SQL Statement ignored
can anyone please help me where is the Problem?
PS. the two other procedure works but not the first one(Function- Hire_Emp).
Thanking you.
Regards,
CREATE SEQUENCE emp_sequence
START WITH 8000
INCREMENT BY 10;
CREATE OR REPLACE PACKAGE Employee_Management
AS
FUNCTION hire_emp( name VARCHAR2,
job VARCHAR2,
mgr NUMBER,
hiredate DATE,
sal NUMBER,
comm NUMBER,
Deptno NUMBER)
RETURN NUMBER;
PROCEDURE fire_emp (emp_id IN NUMBER);
PROCEDURE sal_raise (emp_id IN NUMBER, sal_incr IN NUMBER);
END Employee_Management;
/
CREATE OR REPLACE PACKAGE BODY Employee_Management
AS
FUNCTION hire_emp (name VARCHAR2,
job VARCHAR2,
mgr NUMBER,
hiredate DATE,
sal NUMBER,
comm NUMBER,
Deptno NUMBER)
RETURN NUMBER
IS
new_empno NUMBER (6);
BEGIN
SELECT emp_sequence.NEXTVAL INTO new_empno FROM DUAL;
INSERT INTO emp
VALUES (new_empno,
name,
job,
mgr,
hiredate,
sal,
comm,
deptno);
RETURN (new_empno);
END hire_emp;
PROCEDURE fire_emp (emp_id IN NUMBER)
IS
BEGIN
DELETE FROM emp
WHERE empno = emp_id;
IF SQL%NOTFOUND
THEN
raise_application_error (
-20011,
'Invalid Employee ID: ' || TO_CHAR (emp_id));
END IF;
END fire_emp;
PROCEDURE sal_raise (emp_id IN NUMBER, sal_incr IN NUMBER)
IS
BEGIN
UPDATE emp
SET sal = sal + sal_incr
WHERE empno = emp_id;
IF SQL%NOTFOUND
THEN
raise_application_error (
-20011,
'Invalid Employee Number: ' || TO_CHAR (emp_id));
END IF;
END sal_raise;
END Employee_Management;
/
BEGIN
employee_management.hire_emp ('dipesh',
'manager',
7566,
'2014.10.10',
5000,
200,
30);
--employee_management.sal_raise(7934, 1000);
--employee_management.fire_emp(7934);
END;
/
|
|
|
|
|
|
Re: unknown procedure or function [message #632190 is a reply to message #632189] |
Tue, 27 January 2015 03:51 |
Lalit Kumar B
Messages: 3174 Registered: May 2013 Location: World Wide on the Web
|
Senior Member |
|
|
palpali wrote on Tue, 27 January 2015 15:17and have called the package.function at annonymus block...
so where should i Need to call it?
As CM already said, in your anonymous block :
It would be better if you show us what you are doing.
|
|
|
Re: unknown procedure or function [message #632191 is a reply to message #632190] |
Tue, 27 January 2015 03:58 |
ThomasG
Messages: 3211 Registered: April 2005 Location: Heilbronn, Germany
|
Senior Member |
|
|
There is something funny.....
ORA-06550: Line 2, Column4: PLS-00221:'Hire_Emp' is not procedure or not defined
Shouldn't the name in the error message be all in caps, unless you called it with double quotes?
SQL> begin FooBar(1); end;
2 /
begin FooBar(1); end;
*
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00201: identifier 'FOOBAR' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
SQL> begin "FooBar"(1); end;
2 /
begin "FooBar"(1); end;
*
ERROR at line 1:
ORA-06550: line 1, column 8:
PLS-00201: identifier 'FooBar' must be declared
ORA-06550: line 1, column 8:
PL/SQL: Statement ignored
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|