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 PackageHi List,I spent my morning checking the package trying to figure out whatthe 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.buf1 --
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. EstevezDominican Republic809-565-3121
