Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Criação de Funções e Procedimentos em PL/SQL, Exercícios de Informática

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

2023

Compartilhado em 12/01/2023

AdnilsonBarbosa
AdnilsonBarbosa 🇨🇻

1 documento

1 / 15

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
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:
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Pré-visualização parcial do texto

Baixe Criação de Funções e Procedimentos em PL/SQL e outras Exercícios em PDF para Informática, somente na Docsity!

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:

  • 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.

Vamos agora testar a função:

Passo-1: Criar uma tabela para os testes:

Passo-2: Definir os atributos da tabela (Tab_MP):

  • Pode confirmar os outros passos sem alterações até a criação 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:

  1. Crie uma função que dado o número de minutos retorne o número de horas correspondente.

  2. 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:

DECLARE

CURSOR <NOME-CURSOR> IS ;

<VARIAVEL-REGISTRO> <NOME-CURSOR>%ROWTYPE;

BEGIN

OPEN <NOME-CURSOR>;

LOOP

FETCH <NOME-CURSOR> INTO <VARIAVEL-REGISTRO>;

EXIT WHEN <NOME-CURSOR>%NOTFOUND;

/* LÓGICA PERSONALIZADA

– INSERIR, ALTERAR EM OUTRA TABELA;

- FAZER ALGUM CALCULO, EXPRESSÕES;

END LOOP;

CLOSE <NOME-CURSOR>;

END;