FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Modificar un Store Procedure
Hola a todos.
Estoy intentando modificar un Store Procedure utilizando la sentencia ALTER PROCEDURE ..... Al ejecutarlo me sale el siguiente error Cita:
El código del Store Procedure es el siguiente Código:
CREATE PROCEDURE "SP$REP_FACTURA" ( "FAC_NUMERO" INTEGER ) RETURNS ( "LINEA" VARCHAR(240) ) AS BEGIN EXIT; END ^ ALTER PROCEDURE "SP$REP_FACTURA" ( "FAC_NUMERO" INTEGER ) RETURNS ( "LINEA" VARCHAR(240) ) AS DECLARE VARIABLE FAC_PREFIJO VARCHAR(10) ; DECLARE VARIABLE FAC_FH_EMISION TIMESTAMP ; DECLARE VARIABLE ESTACION VARCHAR(16) ; DECLARE VARIABLE PRO_CODIGO VARCHAR(4) ; DECLARE VARIABLE LIQ_VEH_ID VARCHAR(10) ; DECLARE VARIABLE LIQ_VEH_FH_ENTRADA TIMESTAMP ; DECLARE VARIABLE LIQ_FH_DESDE TIMESTAMP ; DECLARE VARIABLE LIQ_FH_HASTA TIMESTAMP ; DECLARE VARIABLE LIQ_FH_LIQUIDACION TIMESTAMP ; DECLARE VARIABLE LIQ_TIPO VARCHAR(15) ; DECLARE VARIABLE MEN_NOMBRE VARCHAR(50) ; DECLARE VARIABLE MEN_PLACA VARCHAR(13) ; DECLARE VARIABLE MEN_DESDE TIMESTAMP ; DECLARE VARIABLE MEN_HASTA TIMESTAMP ; DECLARE VARIABLE LDS_COM_CODIGO VARCHAR(4) ; DECLARE VARIABLE LDS_VALOR NUMERIC(9,2) ; DECLARE VARIABLE FAC_SUBTOTAL NUMERIC(9,2) ; DECLARE VARIABLE FAC_TOTAL NUMERIC(9,2) ; DECLARE VARIABLE FIM_IMP_NOMBRE VARCHAR(20) ; DECLARE VARIABLE FIM_IMP_PORCENTAJE NUMERIC(9,2) ; DECLARE VARIABLE FIM_VALOR NUMERIC(9,2) ; DECLARE VARIABLE CONTADOR INTEGER ; BEGIN /* Busca la factura. */ SELECT FAC_PREFIJO, FAC_FH_EMISION, FAC_SES_ESTACION, FAC_TOTAL FROM TB$FACTURAS WHERE FAC_NUMERO = :FAC_NUMERO INTO :FAC_PREFIJO, :FAC_FH_EMISION, :ESTACION, :FAC_TOTAL ; /* Toma el prefijo de factura. */ IF ( FAC_PREFIJO IS NULL ) THEN FAC_PREFIJO = '' ; /* === ENCABEZADO === */ SELECT CFG_REC_SAL_ENCABEZADO FROM TB$CONFIGURACION WHERE CFG_ESTACION = :ESTACION INTO :LINEA ; SUSPEND ; LINEA = '----------------------------------------' ; SUSPEND ; LINEA = PADR( 'Factura Nro.', ' ', 19 ) || PADL( FAC_PREFIJO || ' ' || PADL( FAC_NUMERO, '', 10 ), ' ', 21 ) ; SUSPEND ; LINEA = PADR( 'Fecha ', ' ', 30 ) || CAST( FAC_FH_EMISION AS DATE ) ; SUSPEND ; LINEA = '----------------------------------------' ; SUSPEND ; /* === SI HUBO PARQUEO AGREGA LOS DATOS === */ PRO_CODIGO = NULL ; SELECT DISTINCT( FDT_PRO_CODIGO ) FROM TB$FACTURA_DETALLE WHERE FDT_FAC_NUMERO = :FAC_NUMERO AND FDT_PRO_CODIGO = 'PARQ' INTO :PRO_CODIGO ; IF ( PRO_CODIGO IS NOT NULL ) THEN BEGIN /* === BUSCA LA LIQUIDACION CORRESPONDIENTE === */ SELECT LIQ_TIPO FROM TB$FACTURAS LEFT JOIN TB$LIQUIDACIONES ON LIQ_FAC_NUMERO = FAC_NUMERO WHERE FAC_NUMERO = :FAC_NUMERO INTO :LIQ_TIPO ; /* === FACTURA DE PAGO DE PARQUEO === */ IF ( LIQ_TIPO IN ( 'Normal', 'Manual', 'Reliquidado', 'Gracia' ) ) THEN BEGIN SELECT LIQ_FH_DESDE, LIQ_FH_HASTA, LIQ_VEH_ID, LIQ_VEH_FH_ENTRADA, LIQ_FH_LIQUIDACION FROM TB$LIQUIDACIONES LEFT JOIN TB$VEHICULOS ON ( LIQ_VEH_ID = VEH_ID AND LIQ_VEH_FH_ENTRADA = VEH_FH_ENTRADA ) WHERE LIQ_FAC_NUMERO = :FAC_NUMERO INTO :LIQ_FH_DESDE, :LIQ_FH_HASTA, :LIQ_VEH_ID, :LIQ_VEH_FH_ENTRADA, :LIQ_FH_LIQUIDACION ; LINEA = 'Concepto : PARQUEO - ' || LIQ_TIPO ; SUSPEND ; LINEA = PADR( 'Placa/Código : ', ' ', 30 ) || PADL( LIQ_VEH_ID, ' ', 10 ) ; SUSPEND ; LINEA = PADR( 'Entrada : ', ' ', 24 ) || STRL( LIQ_FH_DESDE, 16 ) ; SUSPEND ; LINEA = PADR( 'Salida : ', ' ', 24 ) || STRL( LIQ_FH_HASTA, 16 ) ; SUSPEND ; END /* === FACTURA DE PAGO DE PERDIDO === */ IF ( LIQ_TIPO = 'Perdido' ) THEN BEGIN LINEA = 'Concepto : TIQUETE EXTRAVIADO' ; SUSPEND ; END LINEA = '----------------------------------------' ; SUSPEND ; END /* === SI HUBO MENSUALIDAS AGREGA LOS DATOS === */ PRO_CODIGO = NULL ; SELECT DISTINCT( FDT_PRO_CODIGO ) FROM TB$FACTURA_DETALLE WHERE FDT_FAC_NUMERO = :FAC_NUMERO AND FDT_PRO_CODIGO = 'MENS' INTO :PRO_CODIGO ; IF ( PRO_CODIGO IS NOT NULL ) THEN BEGIN /* === BUSCA LA MENSUALIDAD CORRESPONDIENTE === */ LINEA = 'Concepto : MENSUALIDAD' ; SUSPEND ; FOR SELECT MEN_NOMBRE, MEN_PLACA, MEN_DESDE, MEN_HASTA FROM TB$MENSUALES WHERE MEN_FAC_NUMERO = :FAC_NUMERO INTO :MEN_NOMBRE, :MEN_PLACA, :MEN_DESDE, :MEN_HASTA DO BEGIN LINEA = 'Nombre : ' || STRL( MEN_NOMBRE, 29 ) ; SUSPEND ; LINEA = ' Placa : ' || MEN_PLACA ; SUSPEND ; LINEA = ' Desde : ' || STRL( MEN_DESDE, 16 ) ; SUSPEND ; LINEA = ' Hasta : ' || STRL( MEN_HASTA, 16 ) ; SUSPEND ; END LINEA = '----------------------------------------' ; SUSPEND ; END /* === MISCELANEOS. === */ LINEA = 'Cnt Descripción Subtotal' ; SUSPEND ; LINEA = '--- -------------------- ---------------' ; SUSPEND ; FOR SELECT PADR( FDT_CANTIDAD, ' ', 3 ) || ' ' || PADR( FDT_PRO_DESCRIPCION, ' ', 20 ) || ' ' || PADL( CURR( FDT_TOTAL ), ' ', 15 ) FROM TB$FACTURA_DETALLE WHERE FDT_FAC_NUMERO = :FAC_NUMERO INTO :LINEA DO BEGIN SUSPEND ; END LINEA = ' ===============' ; SUSPEND ; LINEA = 'TOTAL A PAGAR ===>' || PADL( CURR( FAC_TOTAL ), ' ', 20 ) ; SUSPEND ; LINEA = '' ; SUSPEND ; /* === DESCUENTOS. === */ FOR SELECT 'Desc: ' || PADR( LDS_COM_NOMBRE, ' ', 20 ) || ' ' || PADL( CURR( LDS_VALOR ), ' ', 13 ) FROM TB$LIQ_DESCUENTOS WHERE ( LDS_LIQ_VEH_ID = :LIQ_VEH_ID ) AND ( LDS_LIQ_VEH_FH_ENTRADA = :LIQ_VEH_FH_ENTRADA ) AND ( LDS_LIQ_FH_LIQUIDACION = :LIQ_FH_LIQUIDACION ) ORDER BY LDS_SECUENCIA INTO :LINEA DO BEGIN SUSPEND ; END /* === IMPUESTOS === */ FOR SELECT 'Impu: ' || PADL( MIN( FIM_IMP_PORCENTAJE ), ' ', 5 ) || '%' || ' ' || PADR( STRL( MIN( FIM_IMP_NOMBRE ), 15 ), ' ', 15 ) || ' ' || PADL( CURR( SUM( FIM_VALOR ) ), ' ', 11 ) FROM TB$FACTURA_IMPUESTOS WHERE FIM_FAC_NUMERO = :FAC_NUMERO GROUP BY FIM_IMP_CODIGO ORDER BY FIM_IMP_CODIGO INTO :LINEA DO BEGIN SUSPEND ; END /* === PIE DE PAGINA === */ SELECT CFG_REC_SAL_PIE_PAGINA FROM TB$CONFIGURACION WHERE CFG_ESTACION = :ESTACION INTO :LINEA ; SUSPEND ; END |
#2
|
|||
|
|||
Hola
Yo nunca pongo comillas
para borrar
para modificar
Tengo 600 procedimientos en la BD y no he tenido ningun problema Utiliza el IbExpert Saludos |
#3
|
||||
|
||||
Hola. Creo que olvidaste el SET TERM...
Si utilizas FireBird 1.5 puedes usar CREATE OR ALTER PROCEDURE... Cita:
__________________
Progress Openedge https://abevoelker.com/progress_open...dered_harmful/ Delphi forever... |
#4
|
|||
|
|||
Muchas gracias por sus respuestas. Ejecute lo que habia hecho desde el ibexpert y funciona ok.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Store Procedure en intebase | jgutti | Firebird e Interbase | 2 | 12-05-2006 15:12:55 |
Store procedure en firebird | ronimaxh | Firebird e Interbase | 4 | 19-04-2006 11:42:12 |
Store Procedure en Delphi | carlomagno | Firebird e Interbase | 5 | 21-09-2005 20:24:22 |
incremento de store procedure | uper | Firebird e Interbase | 5 | 21-04-2004 19:15:59 |
store procedure | ronimaxh | Firebird e Interbase | 2 | 24-06-2003 20:20:22 |
|