[firebase-br] Exceções dentro de um cursor
Pedro Braga
bragaped em gmail.com
Qui Jul 3 16:46:52 -03 2014
Você pode realizar da seguinte forma
(coalesce(select v3 from teste where v1=1)+6).
dessa forma deve resolver o problema caso não encontre o registro na tabela.
Em 03/07/2014 16:38, Renan Rogowski Pozzo escreveu:
> Estou precisando fazer esse mesmo processo.
> Porém no coalesce do exemplo que você passou *(*select coalesce(v3,0)
> *from teste where v1=1)+6) *não está retornando 0 quando não encontra o
> registro, retorna null e acaba inserindo o registro com valor null e não
> com a nova quantidade que passei.
>
> Alguma sugestão?
>
> Abraço,
> Renan Rogowski Pozzo
>
> *"Entrega o teu caminho ao Senhor; confia nele, e ele o fará." Salmos 37:5*
>
>
> Em 3 de julho de 2014 14:40, Gladiston Santana <gladiston em vidy.com.br>
> escreveu:
>
>> então, se você está trabalhando com cursor em loop e o valor está no
>> registro que tá lendo então é só pegar o valor no fetch, se tá em outra
>> tabela então é com o select :
>> update or insert into teste(v1,v2,v3) values (1,3,(select coalesce(v3,0)
>> from teste where v1=1)+6);
>> No exemplo acima, eu somo 6 ao valor que já existe e assumo 0 se não
>> existir.
>>
>> Não vejo como voce resolveria este problema com exception que era o que
>> pretendia fazer.
>> Mas se ainda precisar tratar numa exception, veja o exemplo aqui:
>>
>> http://www.firebirdsql.org/file/documentation/reference_manuals/reference_material/html/langrefupd25-sqlstate.html
>>
>>
>> Em 3 de julho de 2014 14:21, Emerson Sanches <emerson.sanches em gmail.com>
>> escreveu:
>>
>>> Boa tarde Gladison. Entendi o codigo, mas tenho uma duvida no caso que vc
>>> me passou o insert vai pegar o valor que passei e substituir na tabela.
>> O
>>> que estou precisando que ele pegue o valor existente na tabela e some
>> com o
>>> novo valor que vou passar, tem como fazer isso?
>>>
>>> Obrigado
>>>
>>> Emerson Sanches
>>> Analista de Sistemas
>>>
>>>
>>> Em 3 de julho de 2014 13:42, Gladiston Santana <gladiston em vidy.com.br>
>>> escreveu:
>>>
>>>> não precisa de exception, basta:
>>>> update or insert into tabela(id_campo1, campo2, campo3) values
>>>> (id_valor1,valor2,valor3) matching (id_campo1);
>>>>
>>>>
>>>> Em 3 de julho de 2014 13:28, Emerson Sanches <
>> emerson.sanches em gmail.com>
>>>> escreveu:
>>>>
>>>>> Boa tarde pessoal da lista. Tenho um cursor onde faço uma pesquisa e
>>>> depois
>>>>> inseriro os dados desta pesquisa em um tabela pré-cadastrada. Na
>>> inclusão
>>>>> desses dados gostaria de fazer um tratamento que consistem em:
>>>>>
>>>>> Se o registro a ser incluso fizer uma violação de chave primaria
>> então
>>> eu
>>>>> devo fazer um update desse registro. Em oracle eu faço assim:
>>>>>
>>>>> begin
>>>>> rotina de exclusão
>>>>> exception
>>>>> when dup_val_on_index then
>>>>> rotina de alteração
>>>>> end
>>>>>
>>>>> Não consegui achar uma maneira ou ano sei qual a exceção devo usar no
>>>> bloco
>>>>> exeption para fazer esse tratamento.
>>>>>
>>>>> Obrigado pela ajuda.
>>>>>
>>>>>
>>>>>
>>>>> Emerson Sanches
>>>>> Analista de Sistemas
>>>>> ______________________________________________
>>>>> 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
>>>>>
>>>>
>>>>
>>>> --
>>>> --
>>>> B em B@BU iB em M@B. B em MBBO MBBMMB em B@BZLr E@@@@i r@@@BU
>>>> vB em M@O E em B@Bu BBBM em 0 G em MMM@N8MBB em ZP5r B em B@k 8B@@O
>>>> OB em B@q 2 em BBBM B em B@BO BB em B@B,.:,7B em B@@L uB em B@, OB em B@.
>>>> ,@@@B@ @BBB@, @BBB em 8 M em M@@@ PB em B@B @@@BN iB em B@L
>>>> U em B@B2 LB em B@X B em MBBO MBBM em B i em BBB@. 7 em B@Bi B em B@E
>>>> B@@@BiM em M@B. @BBM em G M em MMB@ v@@M em B, G em B@Z v em B@B.
>>>> 7B em B@O em B@B5 B em B@B8 BBBM em B Z@@@B@ iB@@@2 em B@Br
>>>> NB em M@B em B8 @B em B@8 M em B@B em i:i75 em B@B em r E@@B em B@Bq
>>>> . em B@@@B@: B em B@B@ @B@@@B em B@B@@@ME; .BB em MBB@
>>>> 55.ANOS OMOGBS PBZGGOOMOO117, 7 em BBB@r
>>>> ==============================================r@@@@F=====
>>>> Gladiston Santana 8 em B@B,
>>>> Supervisor de TI G em B@B7
>>>> Tel.:+551147873122 R:228 :@B em B0
>>>> Grupo VIDY - SGQ ISO9001 - 55 ANOS @B em B@.
>>>> Visite nosso site: www·vidy·com·br BB@@@u
>>>> Visite também : www·expolabor·com·br GB em B@N
>>>> ______________________________________________
>>>> 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
>>>
>>
>>
>> --
>> --
>> B em B@BU iB em M@B. B em MBBO MBBMMB em B@BZLr E@@@@i r@@@BU
>> vB em M@O E em B@Bu BBBM em 0 G em MMM@N8MBB em ZP5r B em B@k 8B@@O
>> OB em B@q 2 em BBBM B em B@BO BB em B@B,.:,7B em B@@L uB em B@, OB em B@.
>> ,@@@B@ @BBB@, @BBB em 8 M em M@@@ PB em B@B @@@BN iB em B@L
>> U em B@B2 LB em B@X B em MBBO MBBM em B i em BBB@. 7 em B@Bi B em B@E
>> B@@@BiM em M@B. @BBM em G M em MMB@ v@@M em B, G em B@Z v em B@B.
>> 7B em B@O em B@B5 B em B@B8 BBBM em B Z@@@B@ iB@@@2 em B@Br
>> NB em M@B em B8 @B em B@8 M em B@B em i:i75 em B@B em r E@@B em B@Bq
>> . em B@@@B@: B em B@B@ @B@@@B em B@B@@@ME; .BB em MBB@
>> 55.ANOS OMOGBS PBZGGOOMOO117, 7 em BBB@r
>> ==============================================r@@@@F=====
>> Gladiston Santana 8 em B@B,
>> Supervisor de TI G em B@B7
>> Tel.:+551147873122 R:228 :@B em B0
>> Grupo VIDY - SGQ ISO9001 - 55 ANOS @B em B@.
>> Visite nosso site: www·vidy·com·br BB@@@u
>> Visite também : www·expolabor·com·br GB em B@N
>> ______________________________________________
>> 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
--
Pedro E. Braga
Programador
(18) 99737-0810 Vivo
(18) 98144-3939 Claro
http://bragatec.blogspot.com.br/
Mais detalhes sobre a lista de discussão lista