Ramon,
 
You've declared the Procedure SELECCIONAR differently in the package spec and body.  Oracle must think you're creating an overloaded procedure with different arguments for each version.  The spec and body declarations must match.
 
Jack

--------------------------------
Jack C. Applewhite
Database Administrator/Developer
OCP Oracle8 DBA
iNetProfit, Inc.
Austin, Texas
www.iNetProfit.com
[EMAIL PROTECTED]
(512)327-9068

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Ramon Estevez
Sent: Monday, December 17, 2001 9:21 AM
To: Multiple recipients of list ORACLE-L
Subject: Error in Package

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
                           );
 
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  /
 
Warning: Package Body created with compilation errors.
 
SQL> SHOW ERRORS 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

Any help, suggestions would be appreciated !!!
 
 
Ramon E. Estevez
[EMAIL PROTECTED]
Dominican Republic
809-565-3121
 

Reply via email to