Ver Mensaje Individual
  #4  
Antiguo 11-11-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.

Sinceramente no veo manera de hacer lo que consultas en el primer mensaje pero, dependiendo del formato de la sentencia SQL original, se podría optimizar un poco el código anterior del SP para evitar la repetición:
Código SQL [-]
SET TERM ^ ;

CREATE OR ALTER PROCEDURE SP_TEST (
  COD_CLIENTE INTEGER )
RETURNS (
  R_CODIGO           INTEGER,
  R_NUMERO_CV        INTEGER,
  R_TIPO_TRANSACCION INTEGER )
AS
  DECLARE VARIABLE SENTENCIA VARCHAR(512);
BEGIN
  SENTENCIA = 'SELECT A.CODIGO, A.NUMERO_CV, A.TIPO_TRANSACCION '||
              'FROM TB_COMPRAS_VENTAS A';

  IF ( COD_CLIENTE <> -1 ) THEN
    SENTENCIA = SENTENCIA || 'WHERE A.REF_CLIENTE = ' || :COD_CLIENTE;

  FOR EXECUTE STATEMENT SENTENCIA
  INTO
    :R_CODIGO,
    :R_NUMERO_CV,
    :R_TIPO_TRANSACCION
  DO
    SUSPEND;
END^

SET TERM ; ^
Eso siempre que la sentencia SQL original no sea muy compleja y lo permita...

Saludos
__________________
Daniel Didriksen

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