Você está na página 1de 29

Linguagem

Procedural Tipos
de dados e
declarações

PROF. Ms. J FLÁVIO VASCONCELOS ALVES


ASSUNTOS AULA 2

1) Tipos de dados PL/SQL


2) Declarações
3) Number, date
4) Character
5) Boolean
Obs: Efetuar cadastro em
https://livesql.oracle.com/
2
Seções

Seção Descrição
Seção Variáveis, cursores,
Declarativa exceções e tipos construídos
devem ser declarados.
Seção Executável Obrigatória na construção de
um bloco. È o conjunto de
instruções.
Seção de Quando houver necessidade
Tratamento de de tratamento de exceções.
Exceções

(PUGA;FRANÇA; GOAYA, 2013)


PL/SQL – exemplo 1

Declaração de variáveis

Área de escopo

Tratamento
de erros

(PUGA;FRANÇA; GOAYA, 2013)


TIPOS DE DADOS – seção DECLARATIVA

As variáveis são utilizadas para armazenar


dados temporariamente podendo sofrer alte-
rações ao longo do processamento do bloco.
A declaração a inicialização das variáveis são fei
as na seção declarativa do bloco.
As declarações tem como finalidade alocar
espaço de armazenamento para um valor,
especificar seu tipo de dados e nomear a
localização de armazenamento (em memória),
para que se possa referenciá-los.

(PUGA;FRANÇA; GOAYA, 2013)


TIPOS DE DADOS – CONSTANTES

As constantes, assim como as variáveis,


devem ser declaradas na seção
declarativa, mas tem seus valores
predefinidos na declaração e não
podem ser alterados ao longo do
processamento.

(PUGA;FRANÇA; GOAYA, 2013)


CATEGORIAS DE TIPOS DE DADOS

As variáveis em linguagem PL/SQL


suportam 4 categorias de tipos de
dados.
ESCALARES

COMPOSTOS

REFERENCIAIS

LOB (large object)

(PUGA;FRANÇA; GOAYA, 2013)


ESCALARES p1

Armazena um valor único e não possue


componentes internos. Os tipos de
dados escalares podem ser
classificados em 4 categorias:
• Número
• Caracter
• Data
• Boleano

(PUGA;FRANÇA; GOAYA, 2013)


ESCALARES p2

TIPO DE DADO DESCRIÇÃO


VARCHAR2 Armazena caractere de tamanho
variável, com até 32.767 bytes. Não
há tamanho default para estas
variáveis.
NUMBER Armazena números reais ou inteiros
DATE Armazena datas e horas, entre os
períodos de 4.712 A.C e 9.999 D.C
CHAR Armazena caractere de tamanho
fixo, com até 32.767 bytes. O
tamanho default é 1 byte.
BOOLEAN Armazena TRUE, FALSE ou NULL
9

(PUGA;FRANÇA; GOAYA, 2013)


COMPOSTOS

Comportam o armazenamento de
diferentes valores. Os tipos compostos
em PL/SQL são:
• Registros
• Tabelas
• Matrizes

10

(PUGA;FRANÇA; GOAYA, 2013)


REFERENCIAIS

Armazenam valores chamados de


indicadores, que designam outros itens
de programa.
Um exemplo do tipo referencial é o
CURSOR.

11

(PUGA;FRANÇA; GOAYA, 2013)


LOB (LARGE OBJECT)

Armazena blocos de dados não


estruturados, como textos, imagens
gráficas, videoclipes e formatos de
arquivos para armazenar sons com até
4 gigabytes.
Também fornecem acesso eficiente,
aleatório e em intervalo aos dados,
podendo ser atributos de um tipo de
objeto.
12

(PUGA;FRANÇA; GOAYA, 2013)


CLASSIFICAÇÃO DAS VAR LOBs

CLOB

BLOB

BFILE

13

(PUGA;FRANÇA; GOAYA, 2013)


CLOB

Armazena blocos grandes


de dados com caracteres
de um único byte no banco
de dados.

14

(PUGA;FRANÇA; GOAYA, 2013)


BLOB

Armazena objetos binários


grandes no banco de
dados, em linha (dentro de
uma linha da tabela) ou
fora de linha (fora da linha
da tabela).
15

(PUGA;FRANÇA; GOAYA, 2013)


BFILE

Armazena objetos binários


grandes em arquivos do
sistema operacional, fora
do Banco de Dados.

16

(PUGA;FRANÇA; GOAYA, 2013)


SINTAXE para DECLARACAO de variaveis

identificador [CONSTANT] {tipo de dados I


tabela%coluna type I variável%type)} [NOT NULL]
[ : = valor para inicializacão I expr default]
ELEMENTOS e FUNCIONALIDADES
identificador Nome da variável
CONSTANT A constante deve ser obrigatoriamente
inicializada.
tipo de dados Determina o tipo de dado que a variável ou a
constante armazenará
%type Declara variáveis com a mesma coluna ou de
uma variável já existente
NOT NULL Determina ser de preenchimento obrigatório
expr Valor para inicialização de uma variável ou
constante. Pode ser uma literal, outra variável,
ou uma expressão que envolve operadores ou
funções. 17

(PUGA;FRANÇA; GOAYA, 2013)


EXEMPLO 1 number

declare
soma number;
begin
soma := 2**2;
dbms_output.put_line('Soma=' || soma);
end;

18

(PUGA;FRANÇA; GOAYA, 2013)


EXEMPLO 2 date

declare
v_nascimento date;
v_data date := sysdate + 7;
begin
v_nascimento:= TO_DATE ('26-JAN-1972');
dbms_output.put_line('Nascido em ' ||
v_nascimento);
dbms_output.put_line('Hoje mais 7 dias ' ||
v_data);
end;

19

(PUGA;FRANÇA; GOAYA, 2013)


EXEMPLO 3 number inicializado

declare
v_valor number(7) not null := 10;
begin
v_valor := v_valor * 2340;
dbms_output.put_line('Valor =' || v_valor);
end;

20

(PUGA;FRANÇA; GOAYA, 2013)


EXEMPLO 4 varchar2

declare
v_uf varchar2(2) := 'CE';
begin
dbms_output.put_line('Estado =' || v_uf);
end;

21

(PUGA;FRANÇA; GOAYA, 2013)


EXEMPLO 4 varchar2 default

declare
v_uf varchar2(2) := 'CE';
v_uf2 varchar2(2) default 'RN';
begin
dbms_output.put_line('Estado =' || v_uf);
dbms_output.put_line('Estado padrao =' ||
v_uf2);
end;

22

(PUGA;FRANÇA; GOAYA, 2013)


EXEMPLO 5 boolean

declare
v_teste_logico boolean := (347>56);
soma number;
begin
IF (v_teste_logico) THEN
dbms_output.put_line('Valor da expressao =
VERDADEIRO');
END IF;

end;

23

(PUGA;FRANÇA; GOAYA, 2013)


EXEMPLO 6 CONSTANTES

declare
v_constante constant number := (3.14);
begin

dbms_output.put_line('Valor da constante =' ||


v_constante);

end;

24

(PUGA;FRANÇA; GOAYA, 2013)


PL/SQL – exemplo banco de dados

create table fatura(


nro_venda number(10)not null,
vlr_fatura number(10),
primary key (nro_venda))

SELECT * from fatura;


INSERT INTO fatura VALUES (1,1000);
INSERT INTO fatura VALUES (1,2000);
INSERT INTO fatura VALUES (1,3000);
SELECT * from fatura;
25

(PUGA;FRANÇA; GOAYA, 2013)


PL/SQL – exemplo banco de dados

DECLARE
v_maior number(10,2);
v_menor number(10,2);
v_media number(10,2);
BEGIN
SELECT MAX(vlr_fatura), MIN(vlr_fatura),
AVG(vlr_fatura)
INTO v_maior, v_menor, v_media
FROM fatura;
dbms_output.put_line('Valor maior fatura =' ||
v_maior);
END;
26

(PUGA;FRANÇA; GOAYA, 2013)


PL/SQL – exemplo2 banco de dados
DECLARE
v_maior number(10,2);
v_menor number(10,2);
v_media number(10,2);
BEGIN
SELECT MAX(vlr_fatura), MIN(vlr_fatura),
AVG(vlr_fatura)
INTO v_maior, v_menor, v_media
FROM fatura;
dbms_output.put_line('Valor maior fatura =' || v_maior);
dbms_output.put_line('Valor menor fatura =' ||
v_menor);
dbms_output.put_line('Valor media das fatura =' ||
v_media);
END;
27

(PUGA;FRANÇA; GOAYA, 2013)


EXEMPLO 7 %type

declare
v_constante constant number := (3.14);
v_const2 v_constante%type := (3/4);
begin

dbms_output.put_line('Valor da constante =' ||


v_constante);
dbms_output.put_line('Valor da constante2 =' ||
v_const2);
end;

28

(PUGA;FRANÇA; GOAYA, 2013)


MODIFICANDO DONO ou GRUPO

OBRIGADO !!!
ZAP 9750-2901
@profjsflavioalves

29

Você também pode gostar