Fórum Procedure no Interbase #205807
12/01/2004
0
Se alguém puder me auxiliar e me dizer o que é que tem de errado nesta procedure...
e tb me dizer como é que eu junto 2 variaveis em uma que eu declarei na procedure?
SQL:
SET TERM @ ;
/*********************************************/
/* Gera Corte */
/*********************************************/
CREATE PROCEDURE GERA_CORTE ( pCODSET Integer, pANO Integer, pMES Integer )
AS
DECLARE VARIABLE vCOMPET CHAR(10);
Begin
vCOMPET = ´28/´ + :pMES +´/´+ :pANO;
/* Mestre */
INSERT INTO PARCORUSU ( CODUSU, CODSET, ATECOM )
SELECT DISTINCT PARARQUSU.CODUSU,
PARARQUSU.CODSET,
vCOMPET AS ATECOM
FROM PARARQUSU INNER JOIN PARARQHID ON
( PARARQUSU.CODSIT = PARARQHID.CODSIT )
INNER JOIN PARARQFAT ON
( PARARQUSU.CODUSU = PARARQFAT.CODUSU )
INNER JOIN PARARQHID ON
( PARARQUSU.CODSIT = PARARQHID.CODSIT )
WHERE ( PARARQHID.IMPCOR = 1 ) AND
( PARARQFAT.DATPAG IS NULL ) AND
( PARARQFAT.MES <= :pMES ) AND
( PARARQFAT.ANO = :pANO) AND
( PARARQUSU.CODSET = :pCodSet );
/* Detalhe */
INSERT INTO PARFATCOR ( CODUSU, ATECOM, ANO, MES )
SELECT PARARQUSU.CODUSU,
vCOMPET AS ATECOM,
PARARQFAT.ANO,
PARARQFAT.MES
FROM PARARQUSU INNER JOIN PARARQHID ON
( PARARQUSU.CODSIT = PARARQHID.CODSIT )
INNER JOIN PARARQFAT ON
( PARARQUSU.CODUSU = PARARQFAT.CODUSU )
INNER JOIN PARARQHID ON
( PARARQUSU.CODSIT = PARARQHID.CODSIT )
WHERE ( PARARQHID.IMPCOR = 1 ) AND
( PARARQFAT.MES <= :pMES ) AND
( PARARQFAT.ANO = :pANO) AND
( PARARQUSU.CODSET = :pCodSet );
end @
SET TERM ; @
e tb me dizer como é que eu junto 2 variaveis em uma que eu declarei na procedure?
SQL:
SET TERM @ ;
/*********************************************/
/* Gera Corte */
/*********************************************/
CREATE PROCEDURE GERA_CORTE ( pCODSET Integer, pANO Integer, pMES Integer )
AS
DECLARE VARIABLE vCOMPET CHAR(10);
Begin
vCOMPET = ´28/´ + :pMES +´/´+ :pANO;
/* Mestre */
INSERT INTO PARCORUSU ( CODUSU, CODSET, ATECOM )
SELECT DISTINCT PARARQUSU.CODUSU,
PARARQUSU.CODSET,
vCOMPET AS ATECOM
FROM PARARQUSU INNER JOIN PARARQHID ON
( PARARQUSU.CODSIT = PARARQHID.CODSIT )
INNER JOIN PARARQFAT ON
( PARARQUSU.CODUSU = PARARQFAT.CODUSU )
INNER JOIN PARARQHID ON
( PARARQUSU.CODSIT = PARARQHID.CODSIT )
WHERE ( PARARQHID.IMPCOR = 1 ) AND
( PARARQFAT.DATPAG IS NULL ) AND
( PARARQFAT.MES <= :pMES ) AND
( PARARQFAT.ANO = :pANO) AND
( PARARQUSU.CODSET = :pCodSet );
/* Detalhe */
INSERT INTO PARFATCOR ( CODUSU, ATECOM, ANO, MES )
SELECT PARARQUSU.CODUSU,
vCOMPET AS ATECOM,
PARARQFAT.ANO,
PARARQFAT.MES
FROM PARARQUSU INNER JOIN PARARQHID ON
( PARARQUSU.CODSIT = PARARQHID.CODSIT )
INNER JOIN PARARQFAT ON
( PARARQUSU.CODUSU = PARARQFAT.CODUSU )
INNER JOIN PARARQHID ON
( PARARQUSU.CODSIT = PARARQHID.CODSIT )
WHERE ( PARARQHID.IMPCOR = 1 ) AND
( PARARQFAT.MES <= :pMES ) AND
( PARARQFAT.ANO = :pANO) AND
( PARARQUSU.CODSET = :pCodSet );
end @
SET TERM ; @
Havilux
Curtir tópico
+ 0
Responder
Posts
12/01/2004
Jank
Pelo que verifiquei possa ser isto:
...
vCOMPET = ´28/´ || :pMES ||´/´|| :pANO;
...
Concatenação é com ´||´ e não ´+´.
Espero ter ajudado
Gabriel Jank
...
vCOMPET = ´28/´ || :pMES ||´/´|| :pANO;
...
Concatenação é com ´||´ e não ´+´.
Espero ter ajudado
Gabriel Jank
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)