Hi,
I've a Compiled Body Package which code I described below:
create or replace
PACKAGE body emp_pkg
IS
TYPE boolean_tabtype2
IS
TABLE OF BOOLEAN INDEX BY BINARY_INTEGER;
valid_jobs boolean_tabtype2;
--------------------------------------------------------------------------------
PROCEDURE add_employee(
first_name employees.first_name%TYPE,
last_name employees.last_name%TYPE,
deptid employees.department_id%TYPE,
jobid employees.job_id%type)
IS
BEGIN
IF valid_deptid(deptid) THEN
if valid_jobid(jobid) then
INSERT
INTO employees
(
employee_id,
first_name,
last_name,
email,
hire_date,
job_id,
department_id
)
VALUES
(
employees_seq.NEXTVAL,
first_name,
last_name,
SUBSTR(first_name,1,1)
||SUBSTR(last_name,1,7)
||'@buongio.com',
sysdate,
'SA_REP',
deptid
);
ELSE
RAISE_APPLICATION_ERROR (-20204, 'Invalid job ID. Try again.');
END IF;
END add_employee;
--------------------------------------------------------------------------------
PROCEDURE init_jobs
is
begin
FOR rec IN
(SELECT job_id FROM jobs
)
LOOP
valid_jobs(rec.job_id):=true;
END LOOP;
END init_jobs;
--------------------------------------------------------------------------------
function valid_jobid(
jobid employees.job_id%type)
return boolean
is
BEGIN
return valid_jobs.exists(jobid);
EXCEPTION
WHEN no_data_found THEN
dbms_output.put_line('no valid');
RETURN FALSE;
END valid_jobid ;
-------------------------------------------------------------------------------
BEGIN
init_jobs;
END emp_pkg;
and the server gives me the next output
ORA-06502: PL/SQL: error : error de conversión de carácter a número numérico o de valor
I suspect that the problem is the procedure init_jobs but I don't Know what could I do to resolve it.
Thanks in advance...