Veja o script abaixo:
(nota1 in NUMBER,
peso1 in NUMBER,
nota2 in NUMBER,
peso2 in NUMBER )
return NUMBER
is
mp NUMBER;
begin
mp := ( nota1 * peso1 + nota2 * peso2 ) / ( peso1 + peso2 );
return mp;
end;
Vamos analisar o código fonte:
CREATE OR REPLACE FUNCTION “MEDIA_POND”
Estamos criando ou substituindo uma função cujo nome é MEDIA_POND.
(nota1 in NUMBER, peso1 in NUMBER, ...)
É a declaração de parâmetros de entrada, no momento do uso da função deverão ser fornecidos quatro números.
return NUMBER
É o valor de retorno da função, ao final do seu processamento ela deve retornar a quem chamou um número.
is
Indica que a escrita da função irá começar.
mp NUMBER;
Estamos declarando uma variável de escopo local do tipo número para ser usada durante o processo de calculo.
mp:=(nota1*peso1 + nota2*peso2) / (peso1 + peso2);
Armazena temporariamente na variável numérica “mp” o valor calculado.
return mp;
Retorna para quem chamou o valor da média ponderada.
Podemos fazer ainda algumas colocações:
- O PL/SQL não é case-sensitive.
- Os tipos de dados e comandos SQL são compartilhados com o PL/SQL
- Os blocos ficam armazenados dentro do banco de dados.
Fonte: Apostila recuperada da web de http://www.pedrofcarvalho.com.br/