Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula de Funções (ORACLE): FUNÇÕES Uma função é semelhante a um procedimento. Também aceita argumentos. É uma forma diferente de bloco PL/SQL. A diferença é que uma função é chamada como parte de uma execução. =========================================================== Criando uma Função: CREATE OR REPLACE FUNCTION nome-da-função (nome-parametro IN tipoparametro) RETURN tipo_de_retorno AS [declaração de variaveis] BEGIN ... .. .... ... END; Exemplo 1: Função que calcula o dobro de um número. Create Function CalcDobro (p1 in number) return number as p2 number; BEGIN p2 := p1* 2; Return p2; END; Como ativar a função: Insert into medico values (1,’dr. João Marcos’,CalcDobro(50)); Ou SELECT nomemedico, CalcDobro(VrHonor) from medico; Exemplo2: Função que devolve a descrição de um produto Create or replace function fn_devolve_descricao(pcodprod produto.cod_produto%type) Return varchar2 As Vdesc produto.descricao%type; Begin Select descricao into vdesc From produto Where produto.cod_produto = pcodprod; Return (vdesc); End fn_devolve_descricao; Para evocar uma função: 1a. Forma: Select num_pedido, cod_produto, FN_devolve_descricao(cod_produto) From item_pedido; 2a. Forma variable resultado varchar2(20) execute :resultado := fn_devolve_descricao (3); print :resultado 3ª forma: formatando a saída: select cod_produto, Substr(Fn_devolve_descricao(cod_produto),1,15) as descricao from item_pedido Exercícios: 1- Escreva uma função Ver_hora que receba como parâmetro uma data no formato dd/mm/yyyy e devolva-a no formato dd-mm-yyyy:HH24:mi:ss. 2- Escreva uma função que receba como parâmetro um código de Paciente (modelo Paciente-Consulta) e devolva “IDOSO” se o paciente tiver mais de 65 anos. Caso contrário devolva “NÃO IDOSO”. 3- Crie uma função Chamada Consulta_estoque que retorna a qtde corrente em estoque de determinado produto. a- Passe para a função o código do produto b- Crie o campo QTDE_estoque na tabela de produto. c- Crie uma forma de executar a função criada. 4- Escreva uma função que receba como parâmetro um numero de telefone não formatado( só números) e exiba este número no formato (xx)xxxx-xxxx 5- Escreva uma função que receba como parâmetro o código do cliente e conte quantos pedidos ele tem. Se ele tiver mais de 3 pedidos devolver mensagem: 'Cliente preferencial' concatenado com o código e nome do cliente. Se tiver entre 1 e 3 devolver mensagem 'Cliente Normal' concatenado com o código e nome do cliente Se não tiver pedidos 'Cliente Inativo' concatenado com o código e nome do cliente; Testar se o cliente existe, caso contrário emitir mensagem de erro.
Compartilhar