Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-03-2016
KOVNEO KOVNEO is offline
Registrado
NULL
 
Registrado: mar 2016
Posts: 5
Poder: 0
KOVNEO Va por buen camino
Error al crear procedimiento almacenado

hola una pregunta o mas bien una consulta utilizo firebird.
tengo este procedimiento almacenado el cual permite actualizar fechas, excepto las fechas del año que le mando
me arroja un error, no puedo crearlo si me pudieran orientar de favor y si no es mucha la molestia.

Código SQL [-]
SET TERM ^ ;
CREATE PROCEDURE CAMBIO_AN_CC_VE (
 ANO_NEW     INTEGER)
RETURNS (
 DOCTO_CC_ID INTEGER,
 DOCTO_VE_ID INTEGER,
 FECHA_VE    DATE,
 FECHA_CC    DATE)
AS 
DECLARE VARIABLE lcContinuar CHAR(1);
DECLARE MiCursor CURSOR FOR( SELECT E.DOCTO_DEST_ID,C.FECHA,E.DOCTO_FTE_ID,V.FECHA FROM DOCTOS_ENTRE_SIS E JOIN
 DOCTOS_CC C ON C.DOCTO_CC_ID = E.DOCTO_DEST_ID JOIN
 DOCTOS_VE V ON E.DOCTO_DEST_ID = C.DOCTO_CC_ID AND E.DOCTO_FTE_ID = V.DOCTO_VE_ID
 WHERE EXTRACT(YEAR FROM C.FECHA) NOT LIKE '%:ANO_NEW' AND EXTRACT(YEAR FROM V.FECHA) NOT LIKE '%:ANO_NEW');
BEGIN
 OPEN MiCursor; 
   lcContinuar = 'S';
   WHILE (lcContinuar = 'S') DO BEGIN
      FETCH                        
         MiCursor
      INTO
         : DOCTO_CC_ID,
         : FECHA_CC,
         : DOCTO_VE_ID,
         : FECHA_VE;
      IF (ROW_COUNT = 1) THEN BEGIN   
           UPDATE IMPORTES_DOCTOS_CC SET FECHA =DATEADD(datediff (year from FECHA to cast('01/01/2015' as date)) year to FECHA)
           WHERE DOCTO_CC_ID = : DOCTO_CC_ID;
           UPDATE DOCTOS_VE SET FECHA =DATEADD(datediff (year from FECHA to cast('01/01/2015' as date)) year to FECHA)
           WHERE DOCTO_VE_ID= : DOCTO_VE_ID;
         SUSPEND;
   
      END ELSE
         lcContinuar = 'N';            
   END
   CLOSE MiCursor;
END^^
SET TERM ; ^
GRANT EXECUTE
  ON PROCEDURE CAMBIO_AN_CC_VE
TO USUARIO_MICROSIP WITH GRANT OPTION;^
SET TERM ; ^

me manda este error

Código:
Engine Error (code = 335544351):
unsuccessful metadata update.
STORE RDB$PROCEDURES failed.
SQL Error (code = -607):
This operation is not defined for system tables.
en verdad no se como resolver mi problema
Responder Con Cita
  #2  
Antiguo 16-03-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Tienes varias sentencias, ejecútalas una a una para asegurarte de cuál es la que está fallando.
Por cierto, no tendrá nada que ver, pero creo que sobra un ^ en:
END^^
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Error al crear mi primer procedimiento almacenado Alex1255 Conexión con bases de datos 8 04-01-2016 10:38:56
crear un cursor tomando un procedimiento almacenado erickperez6 MS SQL Server 1 16-03-2011 18:46:55
Crear secuencia numerica con un procedimiento almacenado DobleSiete SQL 9 15-04-2005 22:28:25
Como crear un procedimiento almacenado Javi2 SQL 1 11-02-2005 13:32:40
crear vistas en procedimiento almacenado cahosoft Firebird e Interbase 2 26-08-2003 00:05:30


La franja horaria es GMT +2. Ahora son las 14:24:15.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi