Hi
List,
What is wrong with this
package, I compared it to one example in a book and
looks equal, but still
get an error.
CREATE OR REPLACE
PACKAGE MANTENIMIENTO_COMPROBANTES
AS
TYPE COMPROBANTES_RECORD IS RECORD
(
GRUPO COMPROBANTES.GRUPO%TYPE,
COMPANIA COMPROBANTES.AGENCIA%TYPE,
TIPO_COMPROBANTE COMPROBANTES.TIPO_COMPROBANTE%TYPE,
COMPROBANTE COMPROBANTES.COMPROBANTE%TYPE,
FECHA COMPROBANTES.FECHA%TYPE,
AG_CUENTA COMPROBANTES.AG_CUENTA%TYPE,
CUENTA COMPROBANTES.CUENTA%TYPE,
DETALLE COMPROBANTES.DETALLE%TYPE,
CONCEPTO COMPROBANTES.CONCEPTO%TYPE,
ESTATUS COMPROBANTES.ESTATUS%TYPE,
ESTATUS_IMPRESION COMPROBANTES.ESTATUS_IMPRESION%TYPE,
DESC_AGENCIA AGENCIAS.DESCRIPCION%TYPE,
CUENTA_CONTABLE DATOS_BALANCES.CUENTA_CONTABLE%TYPE,
DESC_CUENTA CUENTAS.DESCRIPCION%TYPE,
DESC_CLIENTE CLIENTES.NOMBRE_COMERCIAL%TYPE
);
--
-- Para Seleccionar Registros de la Tabla
--
TYPE COMPROBANTES_REFCURSOR IS REF CURSOR
RETURN COMPROBANTES_RECORD;
--
-- Para Instrucciones DML
--
TYPE TABLA_COMPROBANTES
IS TABLE OF COMPROBANTES_RECORD
INDEX BY BINARY_INTEGER;
--
-- Procedimiento para Seleccionar registros de la tabla
--
PROCEDURE SELECCIONAR (PCOMPROBANTESQRY IN OUT
COMPROBANTES_REFCURSOR,
PGRUPO IN
COMPROBANTES.GRUPO%TYPE,
PCOMPANIA IN
COMPROBANTES.COMPANIA%TYPE,
PTIPO_COMPROBANTE IN
COMPROBANTES.TIPO_COMPROBANTE%TYPE,
PCOMPROBANTE IN
COMPROBANTES.COMPROBANTE%TYPE
);
AS
TYPE COMPROBANTES_RECORD IS RECORD
(
GRUPO COMPROBANTES.GRUPO%TYPE,
COMPANIA COMPROBANTES.AGENCIA%TYPE,
TIPO_COMPROBANTE COMPROBANTES.TIPO_COMPROBANTE%TYPE,
COMPROBANTE COMPROBANTES.COMPROBANTE%TYPE,
FECHA COMPROBANTES.FECHA%TYPE,
AG_CUENTA COMPROBANTES.AG_CUENTA%TYPE,
CUENTA COMPROBANTES.CUENTA%TYPE,
DETALLE COMPROBANTES.DETALLE%TYPE,
CONCEPTO COMPROBANTES.CONCEPTO%TYPE,
ESTATUS COMPROBANTES.ESTATUS%TYPE,
ESTATUS_IMPRESION COMPROBANTES.ESTATUS_IMPRESION%TYPE,
DESC_AGENCIA AGENCIAS.DESCRIPCION%TYPE,
CUENTA_CONTABLE DATOS_BALANCES.CUENTA_CONTABLE%TYPE,
DESC_CUENTA CUENTAS.DESCRIPCION%TYPE,
DESC_CLIENTE CLIENTES.NOMBRE_COMERCIAL%TYPE
);
--
-- Para Seleccionar Registros de la Tabla
--
TYPE COMPROBANTES_REFCURSOR IS REF CURSOR
RETURN COMPROBANTES_RECORD;
--
-- Para Instrucciones DML
--
TYPE TABLA_COMPROBANTES
IS TABLE OF COMPROBANTES_RECORD
INDEX BY BINARY_INTEGER;
--
-- Procedimiento para Seleccionar registros de la tabla
--
PROCEDURE SELECCIONAR (PCOMPROBANTESQRY IN OUT
COMPROBANTES_REFCURSOR,
PGRUPO IN
COMPROBANTES.GRUPO%TYPE,
PCOMPANIA IN
COMPROBANTES.COMPANIA%TYPE,
PTIPO_COMPROBANTE IN
COMPROBANTES.TIPO_COMPROBANTE%TYPE,
PCOMPROBANTE IN
COMPROBANTES.COMPROBANTE%TYPE
);
END
MANTENIMIENTO_COMPROBANTES;
The
package header creates fine.
This
is the package body
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 (PCOMPROBANTESQRY IN OUT COMPROBANTES_REFCURSOR,
9 PGRUPO IN NUMBER,
10 PCOMPANIA IN NUMBER,
11 PTIPO_COMPROBANTE IN NUMBER,
12 PCOMPROBANTE IN NUMBER) IS
13 BEGIN
14 OPEN PCOMPROBANTESQRY
15 FOR
16 SELECT C.GRUPO, C.COMPANIA, C.TIPO_COMPROBANTE,
17 C.COMPROBANTE, C.FECHA, C.AG_CUENTA,
18 C.CUENTA, C.DETALLE, C.CONCEPTO,
19 C.ESTATUS, C.ESTATUS_IMPRESION, A.DESCRIPCION
20 DESC_AGENCIA, D.CUENTA_CONTABLE, CT.DESCRIPCION
21 DESC_CUENTA, CTE.NOMBRE_COMERCIAL DESC_CLIENTE
22 FROM
23 COMPROBANTES C, AGENCIAS A, DATOS_BALANCES D,
24 CUENTAS CT, CLIENTES CTE
25 WHERE
26 C.GRUPO = PGRUPO AND
27 C.COMPANIA = PCOMPANIA AND
28 C.TIPO_COMPROBANTE = PTIPO_COMPROBANTE AND
29 C.COMPROBANTE = PCOMPROBANTE AND
30 A.AGENCIA = C.AGENCIA AND
31 D.GRUPO(+) = C.GRUPO AND
32 D.COMPANIA(+) = C.COMPANIA AND
33 D.AGENCIA(+) = C.AG_CUENTA AND
34 D.CUENTA(+) = C.CUENTA AND
35 CT.GRUPO(+) = D.GRUPO AND
36 CT.COMPANIA(+) = D.COMPANIA AND
37 CT.CUENTA(+) = D.CUENTA_CONTABLE AND
38 CTE.CLIENTE = D.CLIENTE;
39 END SELECCIONAR;
40* END MANTENIMIENTO_COMPROBANTES;
41 /
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 (PCOMPROBANTESQRY IN OUT COMPROBANTES_REFCURSOR,
9 PGRUPO IN NUMBER,
10 PCOMPANIA IN NUMBER,
11 PTIPO_COMPROBANTE IN NUMBER,
12 PCOMPROBANTE IN NUMBER) IS
13 BEGIN
14 OPEN PCOMPROBANTESQRY
15 FOR
16 SELECT C.GRUPO, C.COMPANIA, C.TIPO_COMPROBANTE,
17 C.COMPROBANTE, C.FECHA, C.AG_CUENTA,
18 C.CUENTA, C.DETALLE, C.CONCEPTO,
19 C.ESTATUS, C.ESTATUS_IMPRESION, A.DESCRIPCION
20 DESC_AGENCIA, D.CUENTA_CONTABLE, CT.DESCRIPCION
21 DESC_CUENTA, CTE.NOMBRE_COMERCIAL DESC_CLIENTE
22 FROM
23 COMPROBANTES C, AGENCIAS A, DATOS_BALANCES D,
24 CUENTAS CT, CLIENTES CTE
25 WHERE
26 C.GRUPO = PGRUPO AND
27 C.COMPANIA = PCOMPANIA AND
28 C.TIPO_COMPROBANTE = PTIPO_COMPROBANTE AND
29 C.COMPROBANTE = PCOMPROBANTE AND
30 A.AGENCIA = C.AGENCIA AND
31 D.GRUPO(+) = C.GRUPO AND
32 D.COMPANIA(+) = C.COMPANIA AND
33 D.AGENCIA(+) = C.AG_CUENTA AND
34 D.CUENTA(+) = C.CUENTA AND
35 CT.GRUPO(+) = D.GRUPO AND
36 CT.COMPANIA(+) = D.COMPANIA AND
37 CT.CUENTA(+) = D.CUENTA_CONTABLE AND
38 CTE.CLIENTE = D.CLIENTE;
39 END SELECCIONAR;
40* END MANTENIMIENTO_COMPROBANTES;
41 /
Warning: Package
Body created with compilation errors.
SQL> SHOW
ERRORS PACKAGE BODY MANTENIMIENTO_COMPROBANTES;
Errors for PACKAGE BODY MANTENIMIENTO_COMPROBANTES:
Errors for PACKAGE BODY MANTENIMIENTO_COMPROBANTES:
LINE/COL
ERROR
-------- -----------------------------------------------------------------
35/16 PLS-00323: subprogram or cursor 'SELECCIONAR' is declared in a
package specification and must be defined in the package body
-------- -----------------------------------------------------------------
35/16 PLS-00323: subprogram or cursor 'SELECCIONAR' is declared in a
package specification and must be defined in the package body
Any help, suggestions
would be appreciated !!!
Ramon E.
Estevez
Dominican Republic
809-565-3121