Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rick1902

Criar Stored Procedure

Recommended Posts

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

 

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.