rick1902 0 Denunciar post Postado Fevereiro 7, 2013 Ola a Todos e saudacoes, meu nome e Ricardo Scarpim e estou tentando criar uma stored procedure no Mysql que me retorne todos os campos da tabela de fornecedores. Na verdade eu tenho um parametro de entrada, o codigo do fornecedor e varios parametros de saida, os campos da tabela de fornecedores, estou fazendo alguns testes pois estou estudando o Mysql, a duvida e a seguinte, como retornar varios parametros do tipo OUT na stored procedure, eis o codigo que tenho. DELIMITER $$ CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_pesq_produtos`( IN codigo INT, OUT for_codigo INT, OUT for_descricao VARCHAR(100), OUT end_endereco VARCHAR(100), OUT cid_cidade VARCHAR(30), OUT for_telefone VARCHAR(20) ) BEGIN SELECT * FROM pro_fornecedores /* Relacionamento entre a Tabela de ENDERECO */ LEFT OUTER JOIN end_endereco ende ON (ende.end_codigo = for_end_codigo) /* Relacionamento entre a Tabela ENDERECO e a Tabela CIDADE */ LEFT OUTER JOIN end_cidade cid ON (cid.cid_codigo = ende.cid_codigo) WHERE (for_codigo = codigo) INTO for_codigo, for_descricao, end_endereco, cid_cidade, for_telefone; END Ao tentar executar esta me dando o seguinte erro : Error Code: 1222. The used SELECT statements have a different number of columns estou chamando a stored assim : CALL sp_pesq_produtos(1,@codigo,@nome,@endereco,@cidade,@telefone) Muito obrigado a todos um abraco. Compartilhar este post Link para o post Compartilhar em outros sites
rick1902 0 Denunciar post Postado Fevereiro 13, 2013 Ola a Todos e saudacoes, meu nome e Ricardo Scarpim e estou tentando criar uma stored procedure no Mysql que me retorne todos os campos da tabela de fornecedores. Na verdade eu tenho um parametro de entrada, o codigo do fornecedor e varios parametros de saida, os campos da tabela de fornecedores, estou fazendo alguns testes pois estou estudando o Mysql, a duvida e a seguinte, como retornar varios parametros do tipo OUT na stored procedure, eis o codigo que tenho. DELIMITER $ CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_pesq_produtos`( IN codigo INT, OUT for_codigo INT, OUT for_descricao VARCHAR(100), OUT end_endereco VARCHAR(100), OUT cid_cidade VARCHAR(30), OUT for_telefone VARCHAR(20) ) BEGIN SELECT * FROM pro_fornecedores /* Relacionamento entre a Tabela de ENDERECO */ LEFT OUTER JOIN end_endereco ende ON (ende.end_codigo = for_end_codigo) /* Relacionamento entre a Tabela ENDERECO e a Tabela CIDADE */ LEFT OUTER JOIN end_cidade cid ON (cid.cid_codigo = ende.cid_codigo) WHERE (for_codigo = codigo) INTO for_codigo, for_descricao, end_endereco, cid_cidade, for_telefone; END Ao tentar executar esta me dando o seguinte erro : Error Code: 1222. The used SELECT statements have a different number of columns estou chamando a stored assim : CALL sp_pesq_produtos(1,@codigo,@nome,@endereco,@cidade,@telefone) Muito obrigado a todos um abraco. Ainda nao encontrei uma solucao para o problema. Compartilhar este post Link para o post Compartilhar em outros sites
erison 63 Denunciar post Postado Fevereiro 15, 2013 quando você execulta esse select SELECT * FROM pro_fornecedores /* Relacionamento entre a Tabela de ENDERECO */ LEFT OUTER JOIN end_endereco ende ON (ende.end_codigo = for_end_codigo) /* Relacionamento entre a Tabela ENDERECO e a Tabela CIDADE */ LEFT OUTER JOIN end_cidade cid ON (cid.cid_codigo = ende.cid_codigo) WHERE (for_codigo = codigo) da certo ? se der criar uma view CREATE VIEW teste AS SELECT * FROM pro_fornecedores /* Relacionamento entre a Tabela de ENDERECO */ LEFT OUTER JOIN end_endereco ende ON (ende.end_codigo = for_end_codigo) /* Relacionamento entre a Tabela ENDERECO e a Tabela CIDADE */ LEFT OUTER JOIN end_cidade cid ON (cid.cid_codigo = ende.cid_codigo) WHERE (for_codigo = codigo) Compartilhar este post Link para o post Compartilhar em outros sites