Pl sql function

Disponível somente no TrabalhosFeitos
  • Páginas : 2 (336 palavras )
  • Download(s) : 0
  • Publicado : 15 de março de 2012
Ler documento completo
Amostra do texto
Exercícios para FUNCTION

1. Crie uma FUNCTION que recebe uma data e apresente no forma "DD de MES do ANO".

create or replace
FUNCTION CONVERTEDATA (DATAENTRADA IN DATE) RETURN VARCHAR2 ISBEGIN

RETURN to_char(DATAENTRADA,'DD "de" MONTH "de" yyyy');


END;

2. Crie uma FUNCTION que recebe um texto e converte tudo para letras maiusculas.

create or replace
FUNCTIONCONVERTERMAIUSCULA (DATAENTRADA IN VARCHAR2) RETURN VARCHAR2 IS

BEGIN

RETURN UPPER(DATAENTRADA);

END;

3. Crie uma FUNCTION que receba um número e retorne seu valor fatorial.

create or replaceFUNCTION fatoracao (numero IN number) RETURN number IS
ii number :=1;
i number;

BEGIN

for i in 1..numero loop
ii := ii * i;
end loop;

return ii;

END;

4. Crie uma FUNCTION que apague umProduto e retorne o texto "SUCESSO"

create or replace
FUNCTION apagaproduto (produtodel in varchar2) RETURN VARCHAR2 IS

begin

delete from produto where nome = produtodel;
return 'sucesso';end;

5. Crie uma FUNCTION que receba o %, o código do produto e aplique a alteração no campo "preco_sugerido" na tabela de produtos conforme indicado.

create or replace
FUNCTIONajustepreco(porcentagem in number, codigo in number) return varchar2
as
begin

update produto set preco_sugerido = preco_sugerido * (1 + (preco_sugerido/100)) where codigo = codigo ;
return 'Preço alterado';end;

6. Crie uma FUNCTION que recebe o CPF e retorne a informação “Valido” ou “Invalido”. Pesquise na web para obter as regras de validação do digito verificador.


create or replace
FUNCTIONvalidacpf (p_cpf IN CHAR)
RETURN varchar2
IS
m_total NUMBER := 0;
m_digito NUMBER := 0;

BEGIN
FOR i IN 1 .. 9
LOOP
m_total := m_total + SUBSTR (p_cpf, i, 1) * (11 - i);
END LOOP;m_digito := 11 - MOD (m_total, 11);

IF m_digito > 9
THEN
m_digito := 0;
END IF;

IF m_digito != SUBSTR (p_cpf, 10, 1)
THEN
RETURN 'FALSO';
END IF;

m_digito := 0;
m_total := 0;

FOR i IN 1...
tracking img