[firebase-br] Stored procedures

Edson Marco Ferrari Junior edmafer em gmail.com
Sex Abr 7 10:35:55 -03 2006


Estou tentando criar algumas procedures que primeiro verifique se
existo o registro na tabela, e se existir ela me retorna o id, caso
contrário, ela faz a inserção, e me retorna o id.

O problema, é que ela fazendo ou não a inserção (a inserção funciona)
ela sempre me retorna "null".

A procedure:

create procedure sp_save_cliente(va_cli_nome varchar(25))
returns(
    vcli_id integer
)
as
begin
    /*
     * Preciso do id do cliente, caso ele não
     * esteja cadastrado, vou cadastrá-lo.
     */
    vcli_id = null;

    select cli_id
    from cliente
    where cli_nome = :va_cli_nome
    into
        :vcli_id;

    if (vcli_id is null) then
    begin
        insert into cliente
        values
        (
            0,
            0,
            :va_cli_nome
        );

        select max(cli_id)
        from cliente
        into
            :vcli_id;
    end
end;

E a chamo da seguinte forma:

select vcli_id from sp_save_cliente ('NOME DO CLIENTE');




Mais detalhes sobre a lista de discussão lista