Pasar parametros TABLE a un procedimiento

tema enviado por Dalia en ORACLE
tema iniciado el 08/02/2008

Hola!

Estoy intentando pasar un tipo tabla como parametro IN OUT, al compilarlo no hay ningun problema pero al ejecutar el procedimiento me marca k el identificador tab_cuentas se debe declarar, no comprendo el error pues segun yo todo esta declarado, agradeceria su ayuda pues soy nueva en PL/SQL,  el codigo es el siguiente:

La especificacion del paquete es:

 

CREATE OR REPLACE PACKAGE CONTA.P_REGVARIOS

IS

    TYPE REC_CUENTAS IS RECORD

    (ID_CUENTA NUMBER,

     CTA_FORMA1 VARCHAR(80),

     NOMBRE VARCHAR(50) );

    TYPE TAB_ARBOLCTAS IS TABLE OF REC_CUENTAS INDEX BY   BINARY_INTEGER ;

    TYPE mycursor IS REF CURSOR;

   PROCEDURE SP_OBT_ARBOL( v_cuenta_id IN NUMBER, v_niveles IN NUMBER,v_orden IN VARCHAR,v_incl_pivote IN VARCHAR,tab_cuentas IN OUT TAB_ARBOLCTAS );

END P_REGVARIOS;

 

El cuerpo del paquete es:

CREATE OR REPLACE PACKAGE BODY CONTA.P_REGVARIOS

IS

PROCEDURE SP_OBT_ARBOL

(v_cuenta_id IN NUMBER,

v_niveles IN NUMBER,

v_orden IN VARCHAR,

v_incl_pivote IN VARCHAR,

tab_cuentas IN OUT TAB_ARBOLCTAS )

AS

BEGIN

DECLARE niveles NUMBER;

i NUMBER;

err_num NUMBER;

err_msg VARCHAR2(255);

BEGIN

dbms_output.put_line('__________________');

tab_cuentas(1).ID_CUENTA:=1;

tab_cuentas(1).CTA_FORMA1:='0009';

tab_cuentas(1).NOMBRE:='PRUEBA';

dbms_output.put_line(tab_cuentas(1).NOMBRE);

 IF(tab_cuentas.FIRST IS NULL) THEN

dbms_output.put_line('es nulo');

END IF;

dbms_output.put_line('-----------------');

EXCEPTION WHEN OTHERS THEN

DBMS_OUTPUT.put_line(SQLERRM);

END;

END SP_OBT_ARBOL;

END P_REGVARIOS;