ORACLE - Functions

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 7

Functions Básico

Identificação
Parceiro:
Número da FAP: Número da OS:

Objetivos
Descrever conceitos básicos para o uso de Functions no Sankhya.

O que é Function (Função) ?


Uma função é um objeto de banco que pode ser executado através de chamada
pelo seu nome, em que o objetivo é retornar alguma informação para o bloco de
código que fez a chamada.

Normalmente utilizamos funções em casos que precisamos estruturar o retorno de


alguma informação para várias chamadas em locais diferentes, de modo que fique
padronizado.

Um exemplo seria o uso de uma função que faça o cálculo do estoque disponível de
um produto. Essa função poderá ser usada em várias situações no sistema
(dashboards, relatórios, consultas de estoque do produto etc.) pois é garantido que
em qualquer dessas situações o cálculo feito será o mesmo para chegarmos a o
resultado.
Isso nos trás confiança e diminui as chances de erro pois sem a função teríamos
que recriar o mesmo código várias vezes diferentes.

Conceitos Básicos?

Uma função é formada por um cabeçalho, pelos parâmetros recebidos, pelo tipo de
retorno, pela declaração das variáveis e pelo bloco de código que será executado.

Dentro de uma função não temos qualificadores (:NEW e :OLD) como nas triggers.
Isso porque uma função não é vinculada a uma Tabela (como são as triggers).
Sendo assim para encontrar informações necessárias dentro do código, temos que
usar querys e gravar os resultados em variáveis.

1
Functions Básico
Exemplo:

Em uma função é possível realizar operações de Insert, Update e/ou Delete em


qualquer tabela do banco, porém o uso dessas operações faz com que a função não
possa ser chamada de alguma consulta (uma query), fazendo assim com que se
perca parte da funcionalidade dela.

Sendo assim, o mais indicado é que quando houver necessidade de operações de


insert, update ou delete seja criada uma procedure com retorno, porém quando o
intuito for de realizar uma consulta, cálculo ou regra padronizada apenas para
retorno de alguma informação seja usada uma função.

Evento de Acionamento?

O evento de acionamento de uma função é sempre uma chamada através do seu


nome e de seus parâmetros.
A diferença é que como a função sempre tem um retorno é necessário que esse
retorno seja armazenado em algum lugar.

Uma função pode ser acionada de um outro objeto (triggers, procedures e funções)
ou de uma consulta (query).

- Acionamento através de um objeto

Se estamos executando uma trigger (ou outro objeto no banco) e precisamos


acionar uma função dentro dela, executamos essa função declarando o nome dela e
os seus parâmetros entre parênteses e armazenado o resultado em uma variável.

Exemplo:

2
Functions Básico
- Acionamento através de uma consulta

Uma função também pode ser chamada através de uma consulta.


Por exemplo se estamos fazendo uma query que traga o estoque por produto,
podemos usar a função para trazer a informação de estoque.

Para isso, executamos essa função declarando o nome dela e os seus parâmetros
entre parênteses e damos um apelido para o campo usando a estrutura “AS”.

Exemplo:

Estrutura Básica de uma Function


- Informar ao banco de dados qual objeto está sendo criado e dar um nome
para o objeto.
CREATE OR REPLACE FUNCTION “NOME_DA_SUA_FUNCAO”
- Junto ao nome, declarar os parâmetros e seus tipos separados por vírgula
entre parênteses.
NOME_DA_SUA_FUNCAO (P_CODPROD NUMBER, P_TIPO CHAR)
- Inserir o bloco que determina o tipo de retorno da função começando pela
estrutura “RETURN” e seguido da estrutura “IS”
RETURN NUMBER IS

- Inserir o bloco com as variáveis entre a estrutura “IS” e “BEGIN”

3
Functions Básico
RETURN NUMBER IS
V_VARIAVEL NUMBER;
BEGIN
- Inserir o bloco onde ficará o código a ser executado entre as estruturas
“BEGIN” e “END”.
BEGIN
AQUI VAI O CÓDIGO QUE SERÁ EXECUTADO;
END;
- Para realização do retorno é necessário inserir o comando “RETURN”
seguido da informação que será retornada antes da estrutura “END”.
Lembrando que o retorno tem de estar de acordo com o tipo de retorno informado
acima na própria função.
RETURN V_VARIAVEL;
END;

- Juntando tudo, temos:

Exemplo de Function
Abaixo temos o exemplo de uma função cujo objetivo é retornar o estoque do
produto que foi passado como parâmetro pelo objeto que fez a chamada.

Na função usamos o parâmetro P_CODPROD para realizar a consulta na tabela de


estoque do sistema e buscar a SOMA do estoque do produto.

Caso a query não traga nenhum resultado o retorno será Zero.


Caso haja resultado na query, o resultado gravado na variável V_ESTOQUE será
retornado para o objeto que fez a chamada.

4
Functions Básico

Observações
Nome da Function
- Costuma-se no nome da função colocar o prefixo FC (de Function), colocar
alguma nomenclatura que resuma o objetivo da função e terminar com algo que
identifique o cliente (Exemplo: CEP de Cepêra, ART de Artivinco, ANH de
Anhanguera etc.).

Exemplo:
FC_RET_ESTOQUE _CEP = Função para retornar o estoque no cliente Cepêra.
FC_CALC_COMISSAO_ANH = Função para calcular a comissão no cliente
Anhanguera.

Identificação das Functions


- Para facilitar verificações futuras, é necessário colocar um trecho de
identificação na função, onde haja um resumo do seu objetivo, data que foi criada,
autor etc.

5
Functions Básico
Esse trecho normalmente é colocado logo após o BEGIN.

Exemplos:

6
Functions Básico

Histórico de Alterações

Data Versão Descrição Autor


11/10/2021 V01 Functions Oracle Willy Abreu

Campinas, 11 de Outubro de 2021.

Você também pode gostar