Check the definition for COMPROBANTES_RECORD and the SELECT statement.
 
You have one extra column AGENCIA   in the record which is not in the SELECT..
 
Yuval.
-----Original Message-----
From: Ramon Estevez [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, December 19, 2001 2:13 PM
To: Multiple recipients of list ORACLE-L
Subject: Error in Package

Hi List,
 
I spent my morning checking the package trying to figure out what
the error is and couldn't find it.  Need some help !!
 
  1  --
  2  -- Paquete para Mantenimiento Tabla de Comprobantes
  3  --
  4  CREATE OR REPLACE PACKAGE MANTENIMIENTO_COMPROBANTES
  5     AS
  6       TYPE COMPROBANTES_RECORD IS RECORD
  7          (
  8            GRUPO                  COMPROBANTES.GRUPO%TYPE,
  9            COMPANIA               COMPROBANTES.COMPANIA%TYPE,
 10            AGENCIA                COMPROBANTES.AGENCIA%TYPE,
 11            TIPO_COMPROBANTE       COMPROBANTES.TIPO_COMPROBANTE%TYPE,
 12            COMPROBANTE            COMPROBANTES.COMPROBANTE%TYPE,
 13            FECHA                  COMPROBANTES.FECHA%TYPE,
 14            AG_CUENTA              COMPROBANTES.AG_CUENTA%TYPE,
 15            CUENTA                 COMPROBANTES.CUENTA%TYPE,
 16            DETALLE                COMPROBANTES.DETALLE%TYPE,
 17            CONCEPTO               COMPROBANTES.CONCEPTO%TYPE,
 18            ESTATUS                COMPROBANTES.ESTATUS%TYPE,
 19            ESTATUS_IMPRESION      COMPROBANTES.ESTATUS_IMPRESION%TYPE,
 20            DESC_AGENCIA           AGENCIAS.DESCRIPCION%TYPE,
 21            CUENTA_CONTABLE        DATOS_BALANCES.CUENTA_CONTABLE%TYPE,
 22            DESC_CUENTA            CUENTAS.DESCRIPCION%TYPE,
 23            DESC_CLIENTE           CLIENTES.NOMBRE_COMERCIAL%TYPE
 24          );
 25  --
 26  -- Para Seleccionar Registros de la Tabla
 27  --
 28       TYPE COMPROBANTES_REFCURSOR IS REF CURSOR
 29          RETURN COMPROBANTES_RECORD;
 30  --
 31  -- Para Instrucciones DML
 32  --
 33       TYPE TABLA_COMPROBANTES
 34          IS TABLE OF COMPROBANTES_RECORD
 35          INDEX BY BINARY_INTEGER;
 36  --
 37  -- Procedimiento para Seleccionar registros de la tabla
 38  --
 39       PROCEDURE SELECCIONAR
 40                           (
 41                            PCOMPROBANTESQRY  IN OUT COMPROBANTES_REFCURSOR,
 42                            PGRUPO            IN COMPROBANTES.GRUPO%TYPE,
 43                            PCOMPANIA         IN COMPROBANTES.COMPANIA%TYPE,
 44                            PAGENCIA          IN COMPROBANTES.AGENCIA%TYPE,
 45                            PTIPO_COMPROBANTE IN COMPROBANTES.TIPO_COMPROBANTE%TYPE,
 46                            PCOMPROBANTE      IN COMPROBANTES.COMPROBANTE%TYPE
 47                           );
 48  --
 49  -- Procedimiento para Insertar registros de la tabla
 50  --
 51       PROCEDURE INSERTAR  (PCOMPROBANTE_REC  IN OUT TABLA_COMPROBANTES );
 52* END MANTENIMIENTO_COMPROBANTES;
 53  /
 
Package created.
 
SQL> ED
Wrote file afiedt.buf
 
  1  --
  2  -- Desarrollo del Paquete para Mantenimiento Tabla de Comprobantes
  3  --
  4  CREATE OR REPLACE PACKAGE BODY MANTENIMIENTO_COMPROBANTES AS
  5  --
  6  -- Procedimiento para Seleccionar registros de la tabla
  7  --
  8     PROCEDURE SELECCIONAR
  9                         (
 10                          PCOMPROBANTESQRY  IN OUT COMPROBANTES_REFCURSOR,
 11                          PGRUPO            IN COMPROBANTES.GRUPO%TYPE,
 12                          PCOMPANIA         IN COMPROBANTES.COMPANIA%TYPE,
 13                          PAGENCIA          IN COMPROBANTES.AGENCIA%TYPE,
 14                          PTIPO_COMPROBANTE IN COMPROBANTES.TIPO_COMPROBANTE%TYPE,
 15                          PCOMPROBANTE      IN COMPROBANTES.COMPROBANTE%TYPE
 16                         ) IS
 17     BEGIN
 18        OPEN PCOMPROBANTESQRY
 19     FOR
 20        SELECT C.GRUPO,           C.COMPANIA,          C.TIPO_COMPROBANTE,
 21               C.COMPROBANTE,     C.FECHA,             C.AG_CUENTA,
 22               C.CUENTA,          C.DETALLE,           C.CONCEPTO,
 23               C.ESTATUS,         C.ESTATUS_IMPRESION, A.DESCRIPCION
 24                 DESC_AGENCIA,    D.CUENTA_CONTABLE,   CT.DESCRIPCION
 25                 DESC_CUENTA,     CTE.NOMBRE_COMERCIAL DESC_CLIENTE
 26        FROM
 27           COMPROBANTES C, AGENCIAS A, DATOS_BALANCES D,
 28           CUENTAS CT,     CLIENTES CTE
 29        WHERE
 30           C.GRUPO               = PGRUPO               AND
 31           C.COMPANIA            = PCOMPANIA            AND
 32           C.AGENCIA             = PAGENCIA             AND
 33           C.TIPO_COMPROBANTE    = PTIPO_COMPROBANTE    AND
 34           C.COMPROBANTE         = PCOMPROBANTE         AND
 35           A.AGENCIA             = C.AGENCIA            AND
 36           D.GRUPO(+)            = C.GRUPO              AND
 37           D.COMPANIA(+)         = C.COMPANIA           AND
 38           D.AGENCIA(+)          = C.AG_CUENTA          AND
 39           D.CUENTA(+)           = C.CUENTA             AND
 40           CT.GRUPO(+)           = D.GRUPO              AND
 41           CT.COMPANIA(+)        = D.COMPANIA           AND
 42           CT.CUENTA(+)          = D.CUENTA_CONTABLE    AND
 43           CTE.CLIENTE           = D.CLIENTE;
 44     END SELECCIONAR;
 45  --
 46  -- Procedimiento para Insertar registros de la tabla
 47  --
 48     PROCEDURE INSERTAR  (PCOMPROBANTE_REC IN OUT TABLA_COMPROBANTES ) IS
 49     BEGIN
 50        FOR C IN 1 .. PCOMPROBANTE_REC.COUNT
 51     LOOP
 52        INSERT INTO COMPROBANTES
 53           (
 54            GRUPO,                 COMPANIA,             AGENCIA,
 55            TIPO_COMPROBANTE,      COMPROBANTE,          FECHA,
 56            AG_CUENTA,             CUENTA,               DETALLE,
 57            CONCEPTO,              ESTATUS,              ESTATUS_IMPRESION
 58           )
 59        VALUES
 60           (
 61            PCOMPROBANTE_REC(C).GRUPO,
 62            PCOMPROBANTE_REC(C).COMPANIA,
 63            PCOMPROBANTE_REC(C).AGENCIA,
 64            PCOMPROBANTE_REC(C).TIPO_COMPROBANTE,
 65            PCOMPROBANTE_REC(C).COMPROBANTE,
 66            PCOMPROBANTE_REC(C).FECHA,
 67            PCOMPROBANTE_REC(C).AG_CUENTA,
 68            PCOMPROBANTE_REC(C).CUENTA,
 69            PCOMPROBANTE_REC(C).DETALLE,
 70            PCOMPROBANTE_REC(C).CONCEPTO,
 71            PCOMPROBANTE_REC(C).ESTATUS,
 72            PCOMPROBANTE_REC(C).ESTATUS_IMPRESION
 73           );
 74     END LOOP;
 75        EXCEPTION
 76            WHEN DUP_VAL_ON_INDEX THEN
 77               RAISE_APPLICATION_ERROR
 78                     (-20001, 'Comprobante ya Existe !!!');
 79            WHEN OTHERS THEN
 80               RAISE_APPLICATION_ERROR
 81                     (-20002, 'Error en Procedimiento Insercion ');
 82     END INSERTAR;
 83* END MANTENIMIENTO_COMPROBANTES;
 84  /
 
Warning: Package Body created with compilation errors.
 
SQL> SHOW ERRORS PACKAGE BODY MANTENIMIENTO_COMPROBANTES;
Errors for PACKAGE BODY MANTENIMIENTO_COMPROBANTES:
 
LINE/COL ERROR
-------- -----------------------------------------------------------------
15/7     PL/SQL: SQL Statement ignored
17/7     PLS-00382: expression is of wrong type
SQL>
 
Any suggestions would be appreciated it,
 
 
TIA,
 
Ramon E. Estevez
[EMAIL PROTECTED]
Dominican Republic
809-565-3121
 

Reply via email to