funções no postgree

01/11/2012

0

pessoal, qual a finalizade das funções(functions)??? elas trabalham em conjunto com as aplicações???
Alan Mario

Alan Mario

Responder

Posts

01/11/2012

Bruno Leandro

a função serve para voce criar a sua regra de negocio ou algum processo, ex: voce pode passar o codigo do cliente e gerar um cobrança ou retornar quantas parcelas tem pendentes

ex
select MinhaFuncao_ParcelasPendentes(1)
resultado: 12

Responder

01/11/2012

Lucas Araujo

é tudo o que BRUNO LEANDRO falou.. e sim ela pode trabalhar em acordo com a aplicação, é até melhor colocar as suas funções no banco pois é mais fácil de fazer alterações. elas podem ser feita na linguagem pl/pgsql ou em outras linguagem.
Responder

02/11/2012

Tiago

Alan, é importante também que leia sobre stored procedures pois elas são similares as functions.. porem a stored procedure não tem retorno e a function tem.
Responder

02/11/2012

Alan Mario

obrigado a todos, pela resposta...poderia me dar mais exemplos, com codigo, por favor...
Responder

05/11/2012

Lucas Araujo

vou mostrar um exemplo básico, que é uma function para inserir um cliente em uma tabela caso ele não exista.

script de criação da tabela:

create table cliente(
id_cliente serial,
nome_cliente varchar(40));

script de criação da função:

create or replace function novoCliente(_nome varchar(40))returns void as
$$
BEGIN
perform * from cliente where nome_cliente = _nome;
if not found then
insert into cliente values (default, _nome);
RAISE NOTICE 'CLIENTE CADASTRADO COM SUCESSO';
else
RAISE NOTICE 'CLIENTE JÁ CADASTRADO';
END
$$
language plpgsql


essa é uma função simples que não retorna nenhum valor, por isso o returns void.
em funções em vez de usarmos select * from... usamos perform, pois para usarmos um select precisamos jogar o resultado do select para alguma variável e como esse exemplo é só pra fazer uma verificação não precisamos guardar o resultado do select.
A logica é simples: se não achar algum resultado para o select com o valor passado por parâmetro então ele é inserido na tabela, se achar aparece uma mensagem a nível de banco(ela não aparece em uma aplicação) informando que esse cliente ja foi cadastrado.
como vc ja deve ter percebido RAISE NOTICE serve para passar uma mensagem a nível de banco.

para chamar essa função vc deve usar o comando select mais o nome da função e parâmetro.
Ex:
select novoCliente('Joao')

como eu falei esse é um exemplo básico e apenas para demostração.

Responder

APRENDA A PROGRAMAR DO ZERO AO PROFISSIONAL

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar