Parametro para stored procedure não funciona :(
Estou tentando fazer uma consulta com stored procedure que me retorne um valor acontece que estou tentando passar dois parametros para o mesmo campo e não funciona
BEGIN
SELECT DISTINCT EPPC FROM ESPECIFICA_PROCEDCONV_DETALHE EPD
[b:e55fa552e5]WHERE EPPV IN (:TAB1, :TAB2)[/b:e55fa552e5]
into :CODPROCE;
suspend;
end
BEGIN
SELECT DISTINCT EPPC FROM ESPECIFICA_PROCEDCONV_DETALHE EPD
[b:e55fa552e5]WHERE EPPV IN (:TAB1, :TAB2)[/b:e55fa552e5]
into :CODPROCE;
suspend;
end
Sremulador
Curtidas 0
Respostas
Afarias
11/03/2004
SELECT DISTINCT EPPC
FROM ESPECIFICA_PROCEDCONV_DETALHE
WHERE EPPV = :TAB1 OR EPPV = :TAB2
into :CODPROCE DO
suspend;
T+
FROM ESPECIFICA_PROCEDCONV_DETALHE
WHERE EPPV = :TAB1 OR EPPV = :TAB2
into :CODPROCE DO
suspend;
T+
GOSTEI 0
Sremulador
11/03/2004
Muito obrigado Afarias, eu já tinha feito isso e funcionou porém estou com outro problema ao executar me retorna o erro
/*!!! Error occured !!!
multiple rows in singleton select\n.
múltiplas linhas em um select de linha única.
cod
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^ ;
CREATE PROCEDURE ´PROCEDIMENTOVIS´
( ´TAB2´ INTEGER, ´TAB1´ INTEGER)
RETURNS
( ´CODPRD´ INTEGER, ´CODPROCE´ INTEGER)
AS
BEGIN
SELECT DISTINCT EPPV, EPPC FROM ESPECIFICA_PROCEDCONV_DETALHE EPD
WHERE ((EPPV=:TAB1) or (EPPV=:TAB2))
into :CODPROCE, :CODPRD;
suspend;
end
^
SET TERM ; ^
COMMIT WORK;
SET AUTODDL ON;
/*!!! Error occured !!!
multiple rows in singleton select\n.
múltiplas linhas em um select de linha única.
cod
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^ ;
CREATE PROCEDURE ´PROCEDIMENTOVIS´
( ´TAB2´ INTEGER, ´TAB1´ INTEGER)
RETURNS
( ´CODPRD´ INTEGER, ´CODPROCE´ INTEGER)
AS
BEGIN
SELECT DISTINCT EPPV, EPPC FROM ESPECIFICA_PROCEDCONV_DETALHE EPD
WHERE ((EPPV=:TAB1) or (EPPV=:TAB2))
into :CODPROCE, :CODPRD;
suspend;
end
^
SET TERM ; ^
COMMIT WORK;
SET AUTODDL ON;
GOSTEI 0
Afarias
11/03/2004
|SELECT DISTINCT EPPV, EPPC FROM
|ESPECIFICA_PROCEDCONV_DETALHE EPD
|WHERE ((EPPV=:TAB1) or (EPPV=:TAB2))
|into :CODPROCE, :CODPRD;
Um select SEM o FOR deve sempre retornar apenas 1 registro!! Caso contrário -- ai está o erro!
ou vc muda ´algo´ para retornar apenas 1 registro ou vc muda o código do procedimento para::
FOR SELECT DISTINCT EPPV, EPPC
FROM ESPECIFICA_PROCEDCONV_DETALHE
WHERE ((EPPV=:TAB1) or (EPPV=:TAB2))
INTO :CODPROCE, :CODPRD
DO SUSPEND;
T+
|ESPECIFICA_PROCEDCONV_DETALHE EPD
|WHERE ((EPPV=:TAB1) or (EPPV=:TAB2))
|into :CODPROCE, :CODPRD;
Um select SEM o FOR deve sempre retornar apenas 1 registro!! Caso contrário -- ai está o erro!
ou vc muda ´algo´ para retornar apenas 1 registro ou vc muda o código do procedimento para::
FOR SELECT DISTINCT EPPV, EPPC
FROM ESPECIFICA_PROCEDCONV_DETALHE
WHERE ((EPPV=:TAB1) or (EPPV=:TAB2))
INTO :CODPROCE, :CODPRD
DO SUSPEND;
T+
GOSTEI 0
Sremulador
11/03/2004
Valeu meu, você e demais... :D
GOSTEI 0