Ver Mensaje Individual
  #17  
Antiguo 26-10-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola rruffino.

No tengo a mano la versión 2.1 como para probar, pero creo que no tendrías problemas enviando parámetros del tipo DATE, al modo de este ejemplo:
Código SQL [-]
SET TERM ^ ;

CREATE OR ALTER PROCEDURE SP_TEMP2 (
    P_FECHA DATE )
RETURNS (     
    FEC DATE,
    COD VARCHAR(10),
    ART VARCHAR(40))
AS
DECLARE VARIABLE STMT VARCHAR(500);
BEGIN
  FOR EXECUTE STATEMENT
    'SELECT FECHA, COD_FACT, ARTICULO ' ||
    'FROM VENTAS WHERE FECHA <= ' || :P_FECHA
  INTO
    :FEC,
    :COD,
    :ART
  DO BEGIN
    SUSPEND;
  END
END^

SET TERM ; ^

Si usaras la versión 2.5 o superior, podes hacer uso de parámetros dinámicos como en los siguientes ejemplos:

. Usando parámetros con nombre.
Código SQL [-]
SET TERM ^ ;

CREATE OR ALTER PROCEDURE SP_TEMP (
    P_FECHA DATE )
RETURNS (     
    FEC DATE,
    COD VARCHAR(10),
    ART VARCHAR(40))
AS
DECLARE VARIABLE STMT VARCHAR(500);
BEGIN
  STMT = 'SELECT FECHA, COD_FACT, ARTICULO ' ||
         'FROM VENTAS WHERE FECHA <= :A';

  FOR EXECUTE STATEMENT (:STMT)(A := :P_FECHA)
  INTO
    :FEC,
    :COD,
    :ART
  DO BEGIN
    SUSPEND;
  END
END^

SET TERM ; ^

. Usando parámetros sin nombre.
Código SQL [-]
SET TERM ^ ;

CREATE OR ALTER PROCEDURE SP_TEMP (
    P_FECHA DATE )
RETURNS (     
    FEC DATE,
    COD VARCHAR(10),
    ART VARCHAR(40))
AS
DECLARE VARIABLE STMT VARCHAR(500);
BEGIN
  STMT = 'SELECT FECHA, COD_FACT, ARTICULO ' ||
         'FROM VENTAS WHERE FECHA <= ?';

  FOR EXECUTE STATEMENT (:STMT)(:P_FECHA)
  INTO
    :FEC,
    :COD,
    :ART
  DO BEGIN
    SUSPEND;
  END
END^

SET TERM ; ^
Los tres ejemplos de SP se pueden llamar del mismo modo:
Código SQL [-]
SELECT FEC, COD, ART FROM SP_TEMP( '19.4.2016' )

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita