Fórum Stored chamar Stored. Erro offset na compilação #54631
09/01/2006
0
Olá amigos,
Tenho uma Stored que movimenta o estoque:
Esta Stored funciona perfeitamente! Se chamada direto.
Agora tenho uma stored que inclui itens de uma requisição de produtos.
Ela é assim:
Vejam que nela chamo o SP_INCMOVESTOQUE. Os parametros estao todos corretos, porém na hora da compilação se eu deixar a chamada ele dá o seguinte erro:
O que pode ser? Ele diz parametro inválido porém já verifiquei exatamente todos os parametros.
Vlw galera!!!
Romulo Oliveira
Tenho uma Stored que movimenta o estoque:
CREATE PROCEDURE SP_INCMOVESTOQUE ( PEMPRESA INTEGER, PEMPRESAORIGEM INTEGER, PPRODUTO INTEGER, PCOR INTEGER, PTAMANHO INTEGER, PDATALANC DATE, PTIPO CHAR(3), PDOCUMENTO VARCHAR(20), PHISTORICO VARCHAR(60), PQTDLANC NUMERIC(18,4)) RETURNS ( PCODIGO INTEGER) AS DECLARE VARIABLE SALDOANTERIOR NUMERIC(18,4); DECLARE VARIABLE SALDOATUAL NUMERIC(18,4); BEGIN PCODIGO = GEN_ID(SEQ_MOVESTOQUE,1); SELECT ETQ_ATUAL FROM ESTOQUE WHERE ETQ_EMPRESA = :PEMPRESA AND ETQ_PRODUTO = :PPRODUTO AND ETQ_COR = :PCOR AND ETQ_TAMANHO = :PTAMANHO INTO :SALDOANTERIOR; IF (PTIPO = ´CRE´) THEN SALDOATUAL = SALDOANTERIOR + PQTDLANC; IF (PTIPO = ´DEB´) THEN SALDOATUAL = SALDOANTERIOR - PQTDLANC; INSERT INTO MOV_ESTOQUE (MES_CODIGO, MES_EMPRESA, MES_EMPRESAORIGEM, MES_PRODUTO, MES_COR, MES_TAMANHO, MES_DATALANC, MES_TIPO, MES_DOCUMENTO, MES_HISTORICO, MES_SALDOANTERIOR, MES_QTDLANC, MES_SALDOATUAL) VALUES (:PCODIGO, :PEMPRESA, :PEMPRESAORIGEM, :PPRODUTO, :PCOR, :PTAMANHO, :PDATALANC, :PTIPO, :PDOCUMENTO, :PHISTORICO, :SALDOANTERIOR, :PQTDLANC, :SALDOATUAL); SUSPEND; UPDATE ESTOQUE SET ETQ_ATUAL = :SALDOATUAL WHERE ETQ_EMPRESA = :PEMPRESA AND ETQ_PRODUTO = :PPRODUTO AND ETQ_COR = :PCOR AND ETQ_TAMANHO = :PTAMANHO; END
Esta Stored funciona perfeitamente! Se chamada direto.
Agora tenho uma stored que inclui itens de uma requisição de produtos.
Ela é assim:
CREATE PROCEDURE SP_INCREQUISICAO_ITENS ( PREQUISICAO INTEGER, PEMPRESA INTEGER, PPRODUTO INTEGER, PCOR INTEGER, PTAMANHO INTEGER, PQTD NUMERIC(12,4), PVLRUNIT NUMERIC(12,4)) RETURNS ( PCODIGO INTEGER) AS BEGIN SELECT MAX(REI_ITEM) FROM REQUISICAO_ITENS WHERE REI_CODIGO = :PREQUISICAO AND REI_EMPRESA = :PEMPRESA INTO :PCODIGO; IF (:PCODIGO IS NULL) THEN PCODIGO = 1; ELSE PCODIGO = PCODIGO + 1; SUSPEND; INSERT INTO REQUISICAO_ITENS (REI_CODIGO, REI_EMPRESA, REI_ITEM, REI_PRODUTO, REI_COR, REI_TAMANHO, REI_QTD, REI_VLRUNIT) VALUES (:PREQUISICAO, :PEMPRESA, :PCODIGO, :PPRODUTO, :PCOR, :PTAMANHO, :PQTD, :PVLRUNIT); EXECUTE PROCEDURE SP_INCMOVESTOQUE(:PEMPRESA, :PEMPRESA, :PPRODUTO, :PCOR, :PTAMANHO,CURRENT_DATE, ´DEB´, ´TESTE´,´TESTE´,1); END
Vejam que nela chamo o SP_INCMOVESTOQUE. Os parametros estao todos corretos, porém na hora da compilação se eu deixar a chamada ele dá o seguinte erro:
Invalid token.
invalid request BLR at offset 500.
parameter mismatch for procedure SP_INCMOVESTOQUE.
O que pode ser? Ele diz parametro inválido porém já verifiquei exatamente todos os parametros.
Vlw galera!!!
Romulo Oliveira
Romulocpd
Curtir tópico
+ 0
Responder