Ir para conteúdo
Fórum Script Brasil
  • 0

Consulta usando procedure


Guest Teduardo

Pergunta

Guest Teduardo

hei, pessoal, não esotu conseguindo criar uma procedure de consulta no mysql, estou usando o SGBD SQLyog e a linguagem é o PHP.

procedure de insercao esta funcionando perfeito.

mas olha a consulta:

DELIMITER $$

CREATE

PROCEDURE `cetesb`.`SP_PESQUISA_SEL`(veiculo int, fabricante int, modelo int) returns int

BEGIN

declare resultado int;

set resultado = select A.parcrtecnc, A.tdata, D.tipoveicl, f.fabrc , E.modelveicl,

G.qvalvl, h.vcilnd, i.ktrans,

B.CO, B.NMHC, B.NOX, B.CHO, B.CO2, B.EVAPT, B.COMARCHLENTA,

B.COMBS, B.ROTCAMOTOR, C.ruidsacelr, C.limteestbl, C.ruidsmedid, C.limteestbl_2

from tb_cabcrparcr A, tb_polnt B, tb_medcaruids C, tb_dicnrveicl D, tb_dicnrmodel E, tb_dicnrfabrc F,

tb_valvl G, tb_cilnd H, tb_dicnrmotor I

where A.PK_cabcrparcr = B.tb_cabcrparcr_pk_cabcrparcr and

A.PK_cabcrparcr = C.tb_cabcrparcr_pk_cabcrparcr and

D.PK_dicnrveicl = A.tb_dicnrveicl_pk_dicnrveicl and

E.PK_dicnrmodel = A.tb_dicnrmodel_pk_dicnrmodel and

F.PK_dicnrfabrc = A.TB_DICNRfabrc_PK_DICNRfabrc and

I.tb_cilnd_pk_cilnd = H.pk_cilnd and

I.tb_valvl_pk_valvl = G.pk_valvl and

A.tb_dicnrmotor_pk_dicnrmotor = I.pk_dicnrmotor and

A.TB_DICNRveicl_PK_DICNRveicl = @veiculo and

A.TB_DICNRfabrc_PK_DICNRfabrc = @fabricante and

A.TB_dicnrmodel_pk_dicnrmodel = @modelo;

return(resultado);

END$$

DELIMITER ;

-----------------------------------------

é a primeira vez q estou ceriando procedure no mysql.. não sei bem a sintaxe..

obrigado

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Oi, 'Teduardo'!

CREATE

PROCEDURE `cetesb`.`SP_PESQUISA_SEL`(veiculo int, fabricante int, modelo int) returns int

BEGIN

Veja a instrução acima que você passou. É procedure ou função? Pois se é procedure não há return.
é a primeira vez q estou ceriando procedure no mysql.. não sei bem a sintaxe..

Baixe a versão do manual do mysql que você usa e leia. Lá tem todas as instruções necessárias.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest teduardo

é procedure,

retirei o return já!

o manual ajudou muito.. deu certo dessa forma

-----------------------------------------------

DELIMITER $$

CREATE

PROCEDURE `cetesb`.`SP_PESQUISA_SEL`(out veiculo int, out fabricante int, out modelo int)

BEGIN

select A.parcrtecnc, A.tdata, D.tipoveicl, f.fabrc , E.modelveicl,

G.qvalvl, h.vcilnd, i.ktrans,

B.CO, B.NMHC, B.NOX, B.CHO, B.CO2, B.EVAPT, B.COMARCHLENTA,

B.COMBS, B.ROTCAMOTOR, C.ruidsacelr, C.limteestbl, C.ruidsmedid, C.limteestbl_2

from tb_cabcrparcr A, tb_polnt B, tb_medcaruids C, tb_dicnrveicl D, tb_dicnrmodel E, tb_dicnrfabrc F,

tb_valvl G, tb_cilnd H, tb_dicnrmotor I

where A.PK_cabcrparcr = B.tb_cabcrparcr_pk_cabcrparcr and

A.PK_cabcrparcr = C.tb_cabcrparcr_pk_cabcrparcr and

D.PK_dicnrveicl = A.tb_dicnrveicl_pk_dicnrveicl and

E.PK_dicnrmodel = A.tb_dicnrmodel_pk_dicnrmodel and

F.PK_dicnrfabrc = A.TB_DICNRfabrc_PK_DICNRfabrc and

I.tb_cilnd_pk_cilnd = H.pk_cilnd and

I.tb_valvl_pk_valvl = G.pk_valvl and

A.tb_dicnrmotor_pk_dicnrmotor = I.pk_dicnrmotor and

A.TB_DICNRveicl_PK_DICNRveicl = veiculo and

A.TB_DICNRfabrc_PK_DICNRfabrc = fabricante and

A.TB_dicnrmodel_pk_dicnrmodel = modelo;

END$$

DELIMITER ;

---------------------------------------

obrigado!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest teduardo
Oi, 'Teduardo'!
CREATE

PROCEDURE `cetesb`.`SP_PESQUISA_SEL`(veiculo int, fabricante int, modelo int) returns int

BEGIN

Veja a instrução acima que você passou. É procedure ou função? Pois se é procedure não há return.
é a primeira vez q estou ceriando procedure no mysql.. não sei bem a sintaxe..
Baixe a versão do manual do mysql que você usa e leia. Lá tem todas as instruções necessárias.

mas não consigo chama-la, da um erro de variavel OUT

Link para o comentário
Compartilhar em outros sites

  • 0
mas não consigo chama-la, da um erro de variavel OUT

Que tipo de erro? Como você está chamando a procedure?

Lembre-se OUT e INOUT é passagem de parâmetros por referência.

Onde OUT é para retorno de dados da procedure através do parâmetro e INOUT para Entrada e retorno de dados.

IN (default) é passagem de parâmetro por valor. O valor entra na procedure e esta não retorna nada.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...