
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!