









Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Um tutorial sobre a linguagem de programação pl/sql, que é utilizada diretamente no núcleo do sistema de gerenciamento de banco de dados (sgbd) oracle. O objetivo é mostrar a criação de funções e procedimentos em pl/sql, interagindo com comandos sql padrões. O tutorial aborda tópicos como a criação de uma função que calcula a média ponderada, exercícios propostos, controle de fluxo no pl/sql (decisão e repetição), e a utilização de cursores para tratar resultados de consultas de forma personalizada. O documento fornece exemplos de código e explicações detalhadas, tornando-o uma referência valiosa para estudantes e profissionais que desejam aprender ou aprofundar seus conhecimentos em pl/sql.
Tipologia: Exercícios
1 / 15
Esta página não é visível na pré-visualização
Não perca as partes importantes!










Tutorial PL/SQL
O PL/SQL é uma linguagem procedural que roda diretamente no núcleo do SGBD Oracle. O objetivo deste tutorial é mostrar a criação de funções e procedimentos em PL/SQL, interagindo com comandos SQL padrões.
Logado no OracleXE vamos acessar a opção:
Vamos construir uma função que calcula a média ponderada. Esta função terá como parâmetros quatro valores numéricos e irá retornar o calculado. Acompanhe a criação desta função:
Passo-1: Nome da função e tipo de retorno:
Passo-2: Definição dos parâmetros de entrada da função:
Passo-3: Codificação do corpo da função (lógica de programação):
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:=(nota1peso1 + nota2peso2) / (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:
Vamos agora testar a função:
Passo-1: Criar uma tabela para os testes:
Passo-2: Definir os atributos da tabela (Tab_MP):
d) Preencher os dados do atributo mp com o calculo através da função MEDIA_PON:
UPDATE Tab_MP SET mp=MEDIA_POND(n1, p1, n2, p2);
e) Os dados agora já estão calculados e armazenados na tabela:
Exercício Proposto:
Crie uma função que dado o número de minutos retorne o número de horas correspondente.
Crie uma função que dado um salário retorne o número de salários mínimos que a pessoa ganha.
Resposta do Exercício Proposto:
Dada uma nota a função retorna a menção em VARCHAR2:
CREATE OR REPLACE FUNCTION MENCAO(nota NUMBER) RETURN VARCHAR2 is m VARCHAR2(2); begin if nota<0 OR nota>10 then m:='DC'; else if nota=0 then m:='SR'; else if nota<2 then m:='II'; else if nota<5 then m:='MI'; else if nota<7 then m:='MM'; else if nota<9 then m:='MS'; else m:='SS'; end if; end if; end if; end if; end if; end if;
return m; end;
Exercício Proposto:
Dado um salário X calcule o salário líquido, sendo que os descontos de IRPF ocorrem conforme a tabela abaixo:
Base de cálculo mensal em R$
Alíquota % Até 1.313,69 - De 1.313,70 até 2.625,12 15, Acima de 2.625,12 27,
CREATE OR REPLACE FUNCTION IRPF(salario NUMBER) RETURN NUMBER is imp_a_pagar NUMBER; parcela NUMBER; begin if salario<=1313.69 then imp_a_pagar:=0; end if; if salario>1313.69 AND salario<=2625.12 then parcela:=salario-1313.69; imp_a_pagar:=parcela0.15; end if; if salario>2625.12 then parcela:=salario-2625.12; imp_a_pagar:=parcela0.275 + ((2625.12-1313.69)*0.15); end if;
return imp_a_pagar; end;
Desejamos criar uma função que recebe um número e informa se o número é ou primo:
Exercício Proposto
Dado um número X representando a quantidade de números primos que se deseja retornar. Mostre a lista com os X primeiros primos a partir de 2:
Cursores
Cursor no PL/SQL é uma forma de tratar um resultado de consulta de forma personalizada. Podemos trabalhar registro a registro aplicando uma lógica própria.
Sintaxe Geral: