Olá, pessoal, tudo bem? Hoje vamos abordar um assunto que tem sido cobrado em diversos concursos de T.I, que é o PL/SQL a linguagem procedural do banco de dados Oracle para SQL. A linguagem está integrada ao banco de dados, suportando todas as instruções, funções e tipos de dados Oracle SQL.
O PL/SQL tem inúmeras features e enriquece a utilização do SGBD Oracle, vamos ver então alguma dessas características e resolver algumas questões para fixar o tema.
Normalmente um bloco PL/SQL é dividido em unidades, que podem ser de 2 tipos, um subprograma ou um bloco anônimo:
- Um subprograma PL/SQLé um bloco PL/SQL armazenado no banco de dados e pode ser chamado pelo nome a partir de um aplicativo. Quando um subprograma é criado, o banco de dados analisa o subprograma e armazena sua representação analisada no banco de dados. É possível declarar um subprograma como um procedimento ou uma função.
- Um bloco anônimo PL/SQLé um bloco PL/SQL que aparece no aplicativo e não é nomeado ou armazenado no banco de dados.
Na Figura 1 abaixo veremos uma interação e chamada a stored procedures PL/SQL.
Figura 1 – Esquema de chamada de Subprogramas
Um subprograma armazenado independente é um subprograma criado no nível do esquema com a instrução CREATE PROCEDURE ou CREATE FUNCTION. Os subprogramas definidos em um pacote (PACKAGE) são chamados subprogramas de pacote e são considerados parte do pacote. O banco de dados armazena subprogramas no dicionário de dados como objetos de esquema.
Então em resumo podemos ter subprogramas (procedures e functions) criadas no esquema do banco ou pacotes (packages) que podem conter functions e procedures no seu corpo.
Exemplo de uma Package, Figura 2:
Figura 2 – Exemplo Package
E quando temos uma function ou procedure numa package temos a Execução de Subprogramas de Pacote PL/SQL, conforme Figura 3.
Figura 3 – Chamada Package
Vamos ver algumas questões para entender melhor as functions e procedures. Você pode usar o site da oracle para rodar uma instância do Oracle Online [1] sem ter que instalar nada na sua máquina, e fazer alguns testes para entender melhor as questões. Então vamos ver as questões e o gabarito está no final do artigo.
Ano: 2018 Banca: FCC Órgão: DPE-AM Prova: FCC – 2018 – DPE-AM – Assistente Técnico de Defensoria – Programador
Considere o código PL/SQL abaixo.
Ao executar o código acima no Oracle 12c em condições ideais, o resultado será
- bônus = 0
bônus = 50
- bônus = 50
bônus = 500
- bônus = 50
bônus = 3000
- bônus = 0
bônus = 500
- um erro de execução, pois deveria ser usado o comando SELECT e não UPDATE.
Ano: 2021 Banca: Quadrix Órgão: CFT Prova: Quadrix – 2021 – CFT – Analista de Tecnologia da Informação Júnior
A partir do código PL/SQL (Procedural Language/Structured Query Language) acima, julgue o item.
Há um erro de sintaxe no código. A palavra reservada ELSIF foi escrita de forma errada. O correto seria ELSEIF.
Alternativas
Certo
Errado
Sempre recomendamos aos alunos, no caso desses assuntos mais práticos, que se tenha alguma familiaridade com o software em questão, muitas questões podem ser respondidas quando se tem vivência com o banco de dados.
Dessa forma encerro esse artigo sobre o assunto PL/SQL! Até mais!
GABARITO
- Letra B. Basta executar o código no Oracle Live.
- A Sintaxe está correta no PL/SQL se usa o ELSIF, basta executar o código no Oracle Live.
Referências
[1] https://livesql.oracle.com/apex/f?p=590:1000
Professor MSc, Washington Almeida
Doutorando e Mestre em Engenharia de Software pelo Centro de Estudos e Sistemas Avançados do Recife – C.E.S.A.R. Atualmente é Analista Judiciário na Justiça Federal (TRF1), Professor de vários cursos no mercado e no Gran Cursos Online. É certificado ISF 27002.
Clique nos links abaixo:
Receba gratuitamente no seu celular as principais notícias do mundo dos concursos!
Clique no link abaixo e inscreva-se gratuitamente: