Escolar Documentos
Profissional Documentos
Cultura Documentos
PL/SQL
Danilo Braga
ICC Software II
http://migre.me/dESmd
Antes de comearmos a
falar de PL/SQL ...
Pequeno Histrico
SQL (Structured Query Language)
Linguagem declarativa
Projetada para trabalhar com BD Relacionais
Criada no incio da dcada de 70
SQL ANSI
Padronizao da linguagem pela American National
Standards Institute (ANSI) em 1986
8 Revises
SQL-86, SQL-89, SQL-92, SQL-1999,
SQL-2003, SQL-2006, SQL-2008, SQL-2011
PL/SQL
uma extenso da linguagem SQL
PL/SQL
No um produto separado
uma tecnologia integrada ao SGDB Oracle
PL/SQL
Suporta conceito de packages
Agrupamento de funes relacionadas
Existem Vantagens ?
Por ser executado dentro do Oracle
Dados no precisam entrar/sair do SGBD
No h sobrecarga de trfego pela rede
No so necessrias API's
intermedirias para acesso a dados
ODBC ou JDBC, etc
declarar variveis,
constantes, registros e
cursores
Lgica do programa,
como loops, instrues
condicionais e SQLs
Utilizada para tratar os
erros gerados durante a
execuo
Estruturas da linguagem
Condicionais
Repetio
Funes Embutidas
Condicionais
IF-THEN Statement
IF condition THEN
statements
END IF;
IF-THEN-ELSIF Statement
IF condition1 THEN
statement1
ELSIF condition2 THEN
CASE Statement
CASE type
WHEN 'A' THEN statement1;
WHEN 'B' THEN statement2
ELSE statementElse;
END CASE;
statement2
ELSE
statement3
END IF;
Repetio
LOOP
LOOP
statements
END LOOP;
EXIT WHEN
LOOP
...
EXIT WHEN num < 5;
END LOOP;
EXIT
LOOP
...
IF num < 5 THEN
EXIT;
END IF;
END LOOP;
Repetio
WHILE-LOOP
FOR-LOOP
FOR counter IN [REVERSE] m..n LOOP
statements;
END LOOP;
FOR-LOOP
FOR i IN reverse 1..3 LOOP
dbms_output.put_line(i);
END LOOP;
Resultado: 3 2 1
Repetio
FOR row IN (SELECT * FROM empregado) LOOP
dbms_output.put_line(row.nome);
END LOOP;
Funes Embuitdas
Grande variedade de funes
Fornecem mais usabilidade ao PL/SQL
Evita a necessidade de reescrita de cdigo
Todas as funes j foram testadas pela ORACLE
Funes Embutidas
Character / String Functions:
Ascii
AsciiStr
Chr
Compose
Concat
||
Convert
Decompose
Dump
Initcap
Instr
Length
Lower
Lpad
Ltrim
Replace
Rpad
Rtrim
Soundex
Substr
Translate
Trim
Upper
VSize
||
A||B||C||D
-- ABCD
Funes Embutidas
Advanced Functions:
BFilename
Cardinality
Case
Coalesce
Decode
Group_ID
Lag
Statement
LNNVL
NANVL
NULLIF
NVL
Lead
Sys_Context
Uid
User
UserEnv
NVL2
Decode
decode( expression , search , resultTrue, resultFalse)
SELECT decode(avaliacao , 3, TIMO,
2, BOM,
REGULAR') FROM empregado;
NVL
NVL(nome, 'n/a')
Funes Embutidas
Mathematical Functions:
Abs
Acos
Asin
Atan
Atan2
Avg
Bin_To_Num
BitAnd
Ceil
Corr
Cos
Cosh
Covar_pop
Covar_samp
Count
Cume_Dist
Dense_Rank
Exp
Extract
Floor
Greatest
Least
Ln
Log
Max
Median
Min
Mod
Power
Rank
Remainder
Round (numbers)
Round (dates)
Sign
Sin
Sinh
Sqrt
StdDev
Sum
Tan
Tanh
Trunc (numbers)
Trunc (dates)
Var_pop
Var_samp
Variance
Date Functions:
Add_Months
Current_Date
Current_Timestamp
DbTimeZone
From_Tz
Last_Day Round
LocalTimestamp
Months_Between
New_Time
Next_Day
To_Date
SessionTimeZone
Sysdate
SysTimestamp
To_Char
Requisitos
Equalizador salrios
Os salrios devem ser reajustados
15 % para maiores 40 anos
10 % para maiores de 35 anos
5 % para maiores de 30 anos
PERGUNTAS ??
http://migre.me/dDb41
http://migre.me/dDbda
Quem me ajudou !
http://docs.oracle.com/cd/B10501_01/appdev.920/a96624/04_struc.htm
http://www.techonthenet.com/oracle/functions/
http://www.developer.com/tech/article.php/777761/Day-1-Learning-the-Basicsof-PLSQL.htm
http://imasters.com.br/artigo/1754/oracle/examinando-alguns-exemplos-pl-sql/