Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

¿Que hay malo en este procedure?

Estas en el tema de ¿Que hay malo en este procedure? en el foro de Oracle en Foros del Web. Que hay de malo en este procedure que me da error Código: CREATE OR REPLACE PROCEDURE P_PROCE ( pCOD IN INTEGER, pVAL IN VARCHAR2, pFEC ...
  #1 (permalink)  
Antiguo 02/12/2009, 09:55
 
Fecha de Ingreso: noviembre-2008
Mensajes: 54
Antigüedad: 15 años, 5 meses
Puntos: 0
¿Que hay malo en este procedure?

Que hay de malo en este procedure que me da error

Código:
CREATE OR REPLACE PROCEDURE P_PROCE (
    pCOD IN INTEGER,
    pVAL IN VARCHAR2,
    pFEC IN VARCHAR2,
    pFECF IN VARCHAR2,
    pUSE IN VARCHAR2,
    nEWID OUT INTEGER);

DECLARE
   TYPE MIREC_ID IS RECORD (NID TABLA1.ID%TYPE);
   OBJREC MIREC_ID;

AS
  
BEGIN
    INSERT INTO TABLA1 (ID,
                        COD,
                        VAL,
                        FEC,
                        FECF,
                        FECM,
                        USU)
     VALUES (S_MISEQ.NEXTVAL,
             pCOD, 
             pVAL,
             pFEC,
             pFECF,
             SYSDATE,
             pUSE)

    RETURNING TABLA1.ID INTO OBJREC;
    nEWID := OBJREC.NID;
    
EXCEPTION
    WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('ERROR');
    ROLLBACK;
    
END P_PROCE;
Errores:

ORA-06550: line 20, column 14:
PL/SQL: ORA-00984: column not allowed here
ORA-06550: line 7, column 5:
PL/SQL: SQL Statement ignored
ORA-06550: line 23, column 5:
PLS-00201: identifier 'NID' must be declared
ORA-06550: line 23, column 5:
PL/SQL: Statement ignored


De ante mano gracias.




EDITADO---
Me auto respondo era el AS deespues del declare.

Última edición por Gorefest; 03/12/2009 a las 06:33
  #2 (permalink)  
Antiguo 03/12/2009, 11:36
 
Fecha de Ingreso: enero-2008
Mensajes: 29
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: ¿Que hay malo en este procedure?

En la linea 5 es sin esto: ;
Queda asi: nEWID OUT INTEGER)

Además, los varchar2, les falta la longitud, pero pasasn.

en la linea 10, TYPE MIREC_ID IS RECORD (NID TABLA1.ID%TYPE);
que
debería ser algo comoesto: myBeer Beers.name%TYPE;
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:50.