Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

ORA-06502: PL/SQL: error TABLE OF BOOLEAN INDEX BY BINARY_INTEGER;

EZGmsAug 4 2011 — edited Aug 4 2011
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...
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Sep 1 2011
Added on Aug 4 2011
6 comments
424 views