[firebase-br] RES: ajuda com stored procedure
Anderson Miranda Barrozo
andersonpaduarj em gmail.com
Dom Mar 22 08:29:22 -03 2009
Se eu entendi bem, vc quer ler a toda a tabela STIHL e atualizar a tabela
produto. Se for
isso ficaria mais ou menos assim. Um detalhe que vi na sua SP original foi
os parametros de entrada, pois como vc iria ler toda a tabela não precisaria
então criei as mesmas como variavel para ser usada junto select : into.
SET TERM ^ ;
CREATE OR ALTER PROCEDURE IMPORTAR (
)
as
codigo integer,
descricao varchar(200),
vlrvenda double precision
begin
FOR SELECT CODIGO, DESCRICAO, PRECO_VENDA FROM STIHL
INTO :CODIGO, :DESCRICAO, :VLRVENDA // Varre toda tabela STIHL
DO BEGIN
if (Exists(select * from PRODUTO where codigo =:codigo)) then
begin
update produto set
vlrvenda = : vlrvenda,
descricao =:descricao
where (codigo = :codigo);
end
else
begin
insert into produto(
codigo,
descricao,
vlrvenda)
VALUES (
:codigo,
:descricao,
:vlrvenda);
END
end
end^
2009/3/21 Sandro <sandro_rebelo em ibest.com.br>
> Mas se você esta passando já o código, a descrição e valor na procedure
> porque vc esta fazendo esse select?
>
> Se tirar esse select da procedure não funciona o jeito que vc quer?
>
> FOR SELECT CODIGO, DESCRICAO, PRECO_VENDA FROM STIHL
> INTO :CODIGO, :DESCRICAO, :vlrvenda //esseloop não ta resolvendo a
> questão
>
>
>
>
>
>
> -----Mensagem original-----
> De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br]
> Em
> nome de Reijanio Nunes Ribeiro
> Enviada em: sábado, 21 de março de 2009 11:50
> Para: FireBase
> Assunto: [firebase-br] ajuda com stored procedure
>
> bom dia a todos estou com um pesqueno problema poderiam me ajudar, outro
> dia
> criei minha primeira sp, pra usar em um importador so que ela so importava
> se a tabela destino estivesse vazia e eu gostaria de inserir caso algum
> produto nov fosse inserido na tabela ou tivesse mudado de codigo então a
> fiz
> assim mais ta dando erro no loop que não ta varrendo a tabela toda e
> inserindo os itens que faltam poderiam me ajudar falta be,m pouco coisa e
> da
> forma que umcoelga tenteou fazer ficou meio complicado usando duas sp's,
> acredito que da forma que ta não seja tão complicado, mais to apanhando
> a sintaxe é a seguinte
>
> SET TERM ^ ;
>
> CREATE OR ALTER PROCEDURE IMPORTAR (
> codigo integer,
> descricao varchar(200),
> vlrvenda double precision)
> as
> begin
> FOR SELECT CODIGO, DESCRICAO, PRECO_VENDA FROM STIHL
> INTO :CODIGO, :DESCRICAO, :vlrvenda //esseloop não ta resolvendo a
> questão
> DO BEGIN
> if (Exists(select codigo from stihl where codigo =:codigo)) then
> begin
> update produto set vlrvenda = : vlrvenda,
> descricao =:descricao
>
> where (codigo = :codigo);
> end
> else
> begin
> insert into produto(codigo, descricao, vlrvenda) select codigo,
> descricao, preco_venda
>
> from stihl;
>
> END
> end
>
> end^
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
--
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
AS Informática
Anderson Miranda Barrozo
(22) 8115-8761
MSN: andersonpaduarj em hotmail.com
Mais detalhes sobre a lista de discussão lista