Gerenciamento de banco de Dados | Bloco anônimo
Published: 2023-12-07 06:34:09

_Engenharia da computação/ Pedro Almeida/ Argeu Viana_

**_Tutorial - Passo a passo_**

 Como foi dito no trabalho anterior, o bloco anônimo em sua prática poder ser dividido em 4 sessões, sendo elas;
• Declare • Beguin • Exception • End

 _A seguir veremos um exemplo prático dessas sessões, desmembradas em partes e com sua formação final na última imagem apresentada:_

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8hj5hiwmbjeqytcq6zic.jpg)

 • **Declare** - Como o nome sugere, tem função de declarar variáveis e seus tipos.

 • **Beguin** - Uma representação do "corpo" do código, onde podemos codificar toda a lógica de programação.

• **Exception** - Com ele poderemos capturar possíveis erros gerados ou retornados no código.

• **End** - Encerra o bloco anônimo, sendo obrigatório o uso do ; no fim da palavra.

**_Seguindo com a codificação_**


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4ukes5soawoi3gflfa9h.jpg)
 
 _Vamos analisar as mudanças feitas no código:_
1. **_DECLARE_**
2. **_C1 NUMBER := 0;_**
 • **C1** - Uma variável do tipo **NUMBER**.
 • **:=** - Serve para atribuir um valor a ela, sendo obrigatório o uso do **:** para o funcionamento do código.

1. **_BEGUIN_**
2. **_DBMS_OUTPUT.PUT_LINE( 'VALOR: ' || TO CHAR( c1 ) );**_
 •**_DBMS_OUTPUT.PUT_LINE** - É um pacote de funções, sendo que, entre elas uma das mais utilizadas é a **PUT_LINE**. A função dela é gravar/imprimir uma linha e pular para a próxima.
 •**( 'VALOR: ' || TO CHAR( c1 ) )** -
 **'VALOR '** - Representa o texto que será imprimido, deve estar contido entre aspas simples.
**TO CHAR** - Represanta a variável selecionada em forma de uma string.

1. **_EXCEPTION_**
2. **_WHEN OTHERS THEN_**
 **WHEN OTHERS THEN** a Sintaxe usada para configurar a captura de erros padrão

1. **_( 'ERRO: ' || SQLERRM );_** 
 **SQLERRM** é a Sintaxe que retrata o erro identificado usando o texto escolhido para imprimir.

_Agora, repare que ao rodar o programa ele será executado, porém, não retornará nenhum valor. Para isso, vamos adicionar o seguinte comando no início do código:_ 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hxxwmf8kxmx7defoapjw.jpg) 

**_SET SERVEROUTPUT ON_** - Serve como um meio de informar que a saída dos comandos deve ser imprimida na tela, veja que ao adicioná-lo, o valor será imprimido. 

**_Agora que já entendemos o básico da aplicação de um bloco anônimo, vamos ver um exemplo de sua prática no mercado de trabalho._**

 Abaixo será feito um exemplo de código bloco anônimo PL/SQL no Oracle para processamento de dados. No exemplo considere que iremos criar um código que atualiza os salários dos funcionários em uma tabela, aplicando um aumento percentual a todos os registros.

**Passo 1: Digitação da Estrutura Base.**
 Comece digitando a estrutura base do bloco anônimo PL/SQL:

1. _DECLARE
2. BEGIN
3.   -- Seu código PL/SQL será inserido aqui
4. END;_

**DECLARE** inicia a seção de declaração, onde você pode definir variáveis se necessário.
**BEGIN** marca o início do bloco anônimo, onde a execução real do código ocorrerá.
END; indica o fim do bloco.


**Passo 2: Declarar variáveis e seus tipos**
 Neste caso só será usado uma variável (v_percentual_aumento) do tipo **NUMBER**. O código fica dessa forma:

1. DECLARE
2.   v_percentual_aumento NUMBER := 0.1;  -- 10% de aumento salarial
3. BEGIN
4.  
5. END;

**v_percentual_aumento** é uma variável que armazena o percentual de aumento.

**Passo 3: Desenvolver lógica central**
 Nesse passo faremos a criação da lógica central do nosso código que ficará dessa forma:

1. DECLARE
2.   v_percentual_aumento NUMBER := 0.1; -- 10% de aumento salarial
3. BEGIN
4.   UPDATE tabela_funcionarios
5.   SET salario = salario * (1 + v_percentual_aumento);
6.   COMMIT;
7. END;

O comando **UPDATE** permite a alteração de um ou mais dados armazenados em uma tabela. Neste caso, é usado para modificar os salários dos funcionários na **tabela(tabela_funcionarios)**;
O comando **SET** modifica parâmetros de configuração de tempo de execução. Neste caso, está fazendo uma operação matemática que aumenta o valor do salário do funcionário em 10%;
**COMMIT** é usado para confirmar as alterações no banco de dados.

_Com isso concluímos nosso tutorial passo-a-passo, dando uma visão geral do funcionamento de um bloco anônimo na prática e seus comandos básicos._