[firebase-br] Stored procedure que retorna o ID após inserir

Douglas Tosi douglasht em gmail.com
Ter Fev 10 10:05:17 -03 2009


2009/2/10 Marcelo Guilherme Tamanini <marcelo_tamanini em hotmail.com>:
> E como ficaria o select para pegar o novo ID inserido, logo após o insert:

Você precisa de uma variável de saída:
create procedure myProc
returns (identity integer)
...
Depois você usa o "insert returning".
Assumindo que o nome do campo da chave primária é "id" e o parâmetro
de saída é "identity":

insert into tb_aparelho(campo) values (valor) returning id into :identity

> E caso ocorra algum erro, como não conseguir inserir, pelo fato de já existir um mesmo registro, colocaria mais um BEGIN e END, logo após o select acima?
> Ficando:
> BEGIN
> WHEN SQLCODE -830 DO
> EXCEPTION cadastro_existente;
> END
> SUSPEND;
> END

Não lembro de cabeça se o código para violação de chave primária é
-830. Mas a sintaxe parece correta.

hth,
-- 
Douglas Tosi
www.sinatica.com




Mais detalhes sobre a lista de discussão lista