Tipos de Dados

 

No PL/SQL, é essencial compreender os tipos de dados disponíveis, pois eles definem os valores que podem ser armazenados e manipulados pelas variáveis. Os tipos de dados disponíveis no PL/SQL incluem:

Tipos Numéricos
  • NUMBER: Armazena números inteiros e de ponto flutuante. Pode ser definido com precisão e escala.
  • BINARY_FLOAT: Armazena números de ponto flutuante de precisão simples.
  • BINARY_DOUBLE: Armazena números de ponto flutuante de precisão dupla.
  • PLS_INTEGER: Armazena inteiros com desempenho otimizado para operações aritméticas.
  • BINARY_INTEGER: Armazena inteiros, similar ao PLS_INTEGER, mas não otimizado.
Tipos de Cadeia de Caracteres
  • VARCHAR2: Armazena cadeias de caracteres de comprimento variável, até 32.767 bytes.
  • CHAR: Armazena cadeias de caracteres de comprimento fixo, até 32.767 bytes.
  • NCHAR: Similar ao CHAR, mas suporta conjuntos de caracteres nacionais.
  • NVARCHAR2: Similar ao VARCHAR2, mas suporta conjuntos de caracteres nacionais.
  • CLOB: Armazena grandes objetos de texto (Character Large Object), até 4 GB.
  • NCLOB: Similar ao CLOB, mas suporta conjuntos de caracteres nacionais.
  • LONG: Armazena cadeias de caracteres de comprimento variável, até 2 GB (uso desencorajado).
Tipos de Data e Hora
  • DATE: Armazena valores de data e hora, incluindo ano, mês, dia, hora, minuto e segundo.
  • TIMESTAMP: Armazena valores de data e hora com frações de segundo.
  • TIMESTAMP WITH TIME ZONE: Similar ao TIMESTAMP, mas inclui informações de fuso horário.
  • TIMESTAMP WITH LOCAL TIME ZONE: Similar ao TIMESTAMP WITH TIME ZONE, mas armazena dados normalizados ao fuso horário do banco de dados.
  • INTERVAL YEAR TO MONTH: Armazena intervalos de tempo em anos e meses.
  • INTERVAL DAY TO SECOND: Armazena intervalos de tempo em dias, horas, minutos e segundos.
Tipos Lógicos
  • BOOLEAN: Armazena valores lógicos (TRUE, FALSE ou NULL). Nota: Este tipo só é permitido em PL/SQL, não em SQL.
Tipos Binários
  • RAW: Armazena dados binários de comprimento variável, até 2.000 bytes.
  • LONG RAW: Armazena dados binários de comprimento variável, até 2 GB (uso desencorajado).
  • BLOB: Armazena grandes objetos binários (Binary Large Object), até 4 GB.
  • BFILE: Armazena referências a arquivos binários fora do banco de dados, até 4 GB.
Outros Tipos
  • ROWID: Armazena a localização física de uma linha no banco de dados.
  • UROWID: Armazena a localização de uma linha indexada por chave secundária.
  • XMLTYPE: Armazena dados XML.
  • URITYPE: Armazena URIs (Uniform Resource Identifiers) que referenciam arquivos externos.

Exemplo de declaração de variáveis com diferentes tipos de dados:

DECLARE
  v_numero        NUMBER(10, 2);
  v_float         BINARY_FLOAT;
  v_double        BINARY_DOUBLE;
  v_texto         VARCHAR2(100);
  v_char          CHAR(10);
  v_nchar         NCHAR(10);
  v_nvarchar      NVARCHAR2(100);
  v_clob          CLOB;
  v_nclob         NCLOB;
  v_long          LONG;
  v_data          DATE;
  v_timestamp     TIMESTAMP;
  v_tz_timestamp  TIMESTAMP WITH TIME ZONE;
  v_ltz_timestamp TIMESTAMP WITH LOCAL TIME ZONE;
  v_interval      INTERVAL YEAR TO MONTH;
  v_boolean       BOOLEAN;
  v_raw           RAW(100);
  v_long_raw      LONG RAW;
  v_blob          BLOB;
  v_bfile         BFILE;
  v_rowid         ROWID;
  v_urowid        UROWID;
  v_xml           XMLTYPE;
  v_uri           URITYPE;
BEGIN
  v_numero        := 1234.56;
  v_float         := 1.23;
  v_double        := 2.34;
  v_texto         := 'Olá, PL/SQL!';
  v_char          := 'Oracle';
  v_nchar         := N'Oracle';
  v_nvarchar      := N'Olá, PL/SQL!';
  v_clob          := 'Texto muito longo';
  v_nclob         := N'Texto muito longo';
  v_long          := 'Texto muito, muito longo';
  v_data          := SYSDATE;
  v_timestamp     := SYSTIMESTAMP;
  v_tz_timestamp  := FROM_TZ(CAST(SYSTIMESTAMP AS TIMESTAMP), 'UTC');
  v_ltz_timestamp := SYSTIMESTAMP;
  v_interval      := INTERVAL '1-2' YEAR TO MONTH;
  v_boolean       := TRUE;
  v_raw           := HEXTORAW('7D3A');
  v_long_raw      := HEXTORAW('7D3A7D3A');
  v_blob          := EMPTY_BLOB();
  v_bfile         := BFILENAME('DIRETORIO', 'arquivo.txt');

  -- Selecionar ROWID da tabela `funcionarios`
  SELECT ROWID INTO v_rowid FROM funcionarios WHERE ROWNUM = 1;

  v_xml := XMLTYPE('<root><element>Valor</element></root>');
  v_uri := HTTPURITYPE('http://www.oracle.com');
END;

Estas declarações cobrem uma ampla variedade de tipos de dados disponíveis no PL/SQL, permitindo que você armazene e manipule diferentes tipos de informações em suas aplicações.

Declaração de Variáveis

 

A declaração de variáveis em PL/SQL é feita na seção declarativa de um bloco PL/SQL. É importante declarar as variáveis antes de usá-las para evitar erros em tempo de execução. A sintaxe básica para declarar uma variável é:

 

nome_variavel tipo_de_dado [tamanho] [:= valor_inicial];

Exemplo de declaração de variáveis:

DECLARE
  v_nome  VARCHAR2(50) := 'Carlos Silva';
  v_idade NUMBER := 30;
BEGIN
  DBMS_OUTPUT.PUT_LINE('Nome: ' || v_nome);
  DBMS_OUTPUT.PUT_LINE('Idade: ' || v_idade);
END;

DBMS Output

Nome: Carlos Silva
Idade: 30

Observação: O operador := é utilizado para atribuir um valor a uma variável em PL/SQL. Na declaração de variáveis, := inicializa a variável com um valor específico no momento da criação. Isso permite que a variável seja usada imediatamente com um valor definido, facilitando a manipulação e operação com dados no bloco PL/SQL.

Operadores e Expressões

 

Os operadores são usados para realizar operações em variáveis e constantes. No PL/SQL, temos vários tipos de operadores:

  • Operadores Aritméticos: +, -, *, /
  • Operadores de Comparação: =, !=, <>, >, <, >=, <=
  • Operadores Lógicos: AND, OR, NOT
  • Operadores de Concatenação: ||

Exemplo de uso de operadores e expressões:

DECLARE
  v_num1   NUMBER := 10;
  v_num2   NUMBER := 20;
  v_soma   NUMBER;
  v_concat VARCHAR2(50);
BEGIN
  v_soma   := v_num1 + v_num2;
  v_concat := 'A soma de ' || v_num1 || ' mais ' || v_num2 || ' é ' || v_soma;
  DBMS_OUTPUT.PUT_LINE(v_concat);
END;

DBMS Output

A soma de 10 mais 20 é 30

Considerações Finais

 

Compreender os fundamentos do PL/SQL, incluindo os tipos de dados, a declaração de variáveis e o uso de operadores e expressões, é crucial para o desenvolvimento eficaz de aplicações em Oracle. Esses conceitos básicos formam a base sobre a qual blocos mais complexos de PL/SQL são construídos.

 

Se você tiver alguma dúvida ou sugestão, deixe um comentário abaixo!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para cima