Você está na página 1de 29

8

Produzindo uma Saída


Legível com o
SQL*Plus/iSQL*Plus

Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Objetivos

Depois
Depois de de completar
completar esta
esta lição,
lição, você
você poderá
poderá
fazer
fazer oo seguinte:
seguinte:
•• Produzir
Produzir consultas
consultas que
que requeiram
requeiram uma
uma
variável
variável de
de entrada
entrada
•• Personalizar
Personalizar oo ambiente
ambiente
SQL*Plus/iSQL*Plus
SQL*Plus/
•• Produzir
Produzir saídas
saídas mais
mais legíveis
legíveis
•• Criar
Criar ee executar
executar arquivos
arquivos de
de script
script
•• Salvar
Salvar personalizações
personalizações
8-2 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.
Relatórios Interativos
Desejo entrar com
valores de consulta em
...sal = ? … tempo de execução.
… deptno = ? …
.. ename = ? ...

Usuário

8-3 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Variáveis de Substituição

•• Use
Use asas variáveis
variáveis de
de substituição
substituição do
do
SQL*Plus/iSQL*Plus para
SQL*Plus/ para armazenar
armazenar
valores
valores temporariamente.
temporariamente.
–– "E"
"E" comercial
comercial único
único (&)
(&)
–– "E"
"E" comercial
comercial duplo
duplo (&&)
(&&)
–– Comandos
Comandos DEFINE
DEFINE ee ACCEPT
ACCEPT
•• Passe
Passe os
os valores
valores da
da variável
variável entre
entre instruções
instruções
SQL.
SQL.
•• Altere
Altere dinamicamente
dinamicamente cabeçalhos
cabeçalhos ee rodapés.
rodapés.
8-4 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.
Usando a Variável de Substituição &
Use
Use aa variável
variável precedida
precedida de
de um
um "e"
"e" comercial
comercial
(&)
(&) para
para solicitar
solicitar um
um valor
valor ao
ao usuário.
usuário.
SQL> SELECT empno, ename, sal, deptno
2 FROM emp
3 WHERE empno = &employee_num;

Enter value for employee_num: 7369

EMPNO ENAME SAL DEPTNO


--------- ---------- --------- ---------
7369 SMITH 800 20

8-5 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Usando o Comando SET VERIFY
Alterne
Alterne aa exibição
exibição do
do texto
texto de
de um
um comando
comando
antes
antes ee depois
depois do SQL*Plus/iSQL*Plus
do SQL*Plus/ iSQL*Plus
trocar
trocar variáveis
variáveis de
de substituição
substituição por
por valores.
valores.
SQL> SET VERIFY ON
SQL> SELECT empno, ename, sal, deptno
2 FROM emp
3 WHERE empno = &employee_num;

Enter value for employee_num: 7369


old 3: WHERE empno = &employee_num
new 3: WHERE empno = 7369

...

8-6 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Valores de Caractere e Data
com Variáveis de Substituição
Use
Use aspas
aspas simples
simples para
para valores
valores de
de caractere
caractere
ee data.
data.
SQL> SELECT ename, deptno, sal*12
2 FROM emp
3 WHERE job='&job_title';

Enter value for job_title: ANALYST

ENAME DEPTNO SAL*12


---------- --------- ---------
SCOTT 20 36000
FORD 20 36000

8-7 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Especificando Nomes de Coluna,
Expressões e Texto em
Tempo de Execução
Use
Use variáveis
variáveis de
de substituição
substituição para
para
complementar
complementar oo seguinte:
seguinte:
•• Condição
Condição WHERE
WHERE
•• Cláusula
Cláusula ORDER
ORDER BY
BY
•• Expressão
Expressão da
da coluna
coluna
•• Nome
Nome dada tabela
tabela
•• Toda
Toda aa instrução
instrução SELECT
SELECT

8-8 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Especificando Nomes de Coluna,
Expressões e Texto em
Tempo de Execução
SQL> SELECT empno, ename, job, &column_name
2 FROM emp
3 WHERE &condition
4 ORDER BY &order_column;

Enter value for column_name: sal


Enter value for condition: sal>=3000
Enter value for order_column: ename

EMPNO ENAME JOB SAL


--------- ---------- --------- ---------
7902 FORD ANALYST 3000
7839 KING PRESIDENT 5000
7788 SCOTT ANALYST 3000

8-9 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Usando a Variável de Substituição &&
Use
Use oo "e"
"e" comercial
comercial duplo
duplo (&&)
(&&) se
se desejar
desejar
reutilizar
reutilizar oo valor
valor da
da variável
variável sem
sem precisar
precisar
solicitar
solicitar sempre
sempre oo usuário.
usuário.
SQL> SELECT empno, ename, job, &&column_name
2 FROM emp
3 ORDER BY &column_name;

Enter value for column_name: deptno


EMPNO ENAME JOB DEPTNO
--------- ---------- --------- ---------
7839 KING PRESIDENT 10
7782 CLARK MANAGER 10
7934 MILLER CLERK 10
...
14 rows selected.

8-10 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Definindo as Variáveis de Usuário
•• Você
Você pode
pode predefinir
predefinir variáveis
variáveis usando
usando um
um
destes
destes dois
dois comandos
comandos do do
SQL*Plus/iSQL*Plus::
SQL*Plus/
–– DEFINE:
DEFINE: Crie
Crie uma
uma variável
variável de
de usuário
usuário
de
de tipo
tipo de
de dados
dados CHAR
CHAR
–– ACCEPT:
ACCEPT: LeiaLeia aa entrada
entrada do
do usuário
usuário ee
armazene-a
armazene-a em em uma
uma variável
variável
•• Se
Se você
você precisar
precisar predefinir
predefinir uma
uma variável
variável
que
que inclua
inclua espaços,
espaços, deverá
deverá colocar
colocar oo valor
valor
entre
entre aspas
aspas simples
simples quando
quando utilizar
utilizar oo
comando
comando DEFINE.
DEFINE.
8-11 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.
O Comando ACCEPT

•• Cria
Cria um
um prompt
prompt personalizado
personalizado durante
durante aa
aceitação
aceitação da
da entrada
entrada do
do usuário
usuário
•• Define
Define explicitamente
explicitamente uma
uma variável
variável de
de tipo
tipo
de
de dados
dados NUMBER
NUMBER ou ou DATE
DATE
•• Oculta
Oculta aa entrada
entrada do
do usuário
usuário por
por motivos
motivos dede
segurança
segurança
ACCEPT
ACCEPT variável
variável [tipo
[tipo de
de dados]
dados] [FORMAT
[FORMAT formato]
formato]
[PROMPT
[PROMPT texto]
texto] [HIDE]
[HIDE]

8-12 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Usando o Comando ACCEPT

ACCEPT dept PROMPT 'Provide the department name:'


SELECT *
FROM dept
WHERE dname = UPPER('&dept')
/

Provide the department name: Sales

DEPTNO DNAME LOC


--------- -------------- -------------
30 SALES CHICAGO

8-13 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Comandos DEFINE e UNDEFINE
•• A
A variável
variável permanece
permanece definida
definida até
até você:
você:
–– Usar
Usar oo comando
comando UNDEFINE
UNDEFINE para
para limpá-la;
limpá-la;
ou
ou
–– Sair
Sair do
do SQL*Plus
SQL*Plus
•• É
É possível
possível verificar
verificar suas
suas alterações
alterações comcom oo
comando
comando DEFINE.
DEFINE.
•• Para
Para definir
definir variáveis
variáveis para
para cada
cada sessão,
sessão,
modifique
modifique oo arquivo login.sql de
arquivo login.sql de forma
forma que
que
as
as variáveis
variáveis sejam
sejam criadas
criadas na
na inicialização.
inicialização.

8-14 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Usando o Comando DEFINE
•• Crie
Crie uma
uma variável
variável para
para armazenar
armazenar oo nome
nome
do
do departamento.
departamento.
SQL> DEFINE deptname = sales
SQL> DEFINE deptname

DEFINE
DEFINE DEPTNAME
DEPTNAME == "sales"
"sales" (CHAR)
(CHAR)

•• Use
Use aa variável
variável da
da mesma
mesma forma
forma que
que
usaria
usaria qualquer
qualquer outra
outra variável.
variável.
SQL> SELECT *
2 FROM dept
3 WHERE dname = UPPER('&deptname');

8-15 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Personalizando o Ambiente
SQL*Plus/iSQL*Plus
•• Use
Use os
os comandos
comandos SET
SET para
para controlar
controlar aa
sessão
sessão atual.
atual.
SET
SET system_variable
system_variable value
value

•• Verifique
Verifique oo que
que você
você definiu
definiu usando
usando oo
comando
comando SHOW.
SHOW
SHOW.
SHOW
SQL>
SQL> SET
SET ECHO
ECHO ON
ON

SQL>
SQL> SHOW
SHOW ECHO
ECHO
echo
echo ON
ON

8-16 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Variáveis do Comando SET
•• ARRAYSIZE
ARRAYSIZE {{2020 || nn}}
•• COLSEP
COLSEP {_
{_ || text
text}}
•• FEEDBACK
FEEDBACK {{66 || nn |OFF
|OFF || ON}
ON}
•• HEADING
HEADING {OFF
{OFF || ON
ON}}
•• LINESIZE
LINESIZE {{80
80 || nn}}
•• LONG
LONG {{80
80 || nn}}
•• PAGESIZE
PAGESIZE {{24
24 || nn}}
•• PAUSE
PAUSE {{OFF
OFF || ON
ON || text
text}}
•• TERMOUT
TERMOUT {OFF
{OFF || ON
ON}}

8-17 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Salvando as Personalizações
no Arquivo login.sql

•• O
O arquivo login.sql contém
arquivo login.sql contém oo comando
comando
SET
SET standard
standard ee outros
outros comandos
comandos dodo
SQL*Plus
SQL*Plus que
que são
são implementados
implementados nono login.
login.
•• Você
Você pode
pode modificar
modificar oo login.sql
login.sql para
para
conter
conter comandos
comandos SETSET adicionais.
adicionais.

8-18 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Comandos de Formato
do SQL*Plus

• COLUMN [opção da coluna]


• TTITLE [texto | OFF | ON]
• BTITLE [texto | OFF | ON]
• BREAK [ON report_element]

8-19 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


O Comando COLUMN
Controla
Controla aa exibição
exibição de
de uma
uma coluna
coluna
COL[UMN]
COL[UMN] [{coluna|apelido}
[{coluna|apelido} [opção]]
[opção]]

•• CLE[AR]:
CLE[AR]: Limpa
Limpa qualquer
qualquer formato
formato dede coluna
coluna
•• FOR[MAT]
FOR[MAT] formato:
formato: Altera
Altera aa exibição
exibição da
da
coluna
coluna usando
usando um um modelo
modelo de de formato
formato
•• HEA[DING]
HEA[DING] texto:
texto: Define
Define oo cabeçalho
cabeçalho dada
coluna
coluna
•• JUS[TIFY]
JUS[TIFY] {alinhamento}:
{alinhamento}: Alinha
Alinha oo
cabeçalho
cabeçalho dada coluna
coluna para
para aa esquerda,
esquerda, oo
centro
centro ou
ou aa direita
direita
8-20 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.
Usando o Comando COLUMN
•• Crie
Crie cabeçalhos
cabeçalhos de
de coluna.
coluna.
COLUMN
COLUMN ename
ename HEADING
HEADING 'Employee|Name'
'Employee|Name' FORMAT
FORMAT A15
A15
COLUMN
COLUMN sal
sal JUSTIFY
JUSTIFY LEFT
LEFT FORMAT
FORMAT $99,990.00
$99,990.00
COLUMN
COLUMN mgr
mgr FORMAT
FORMAT 999999999
999999999 NULL
NULL 'No
'No manager'
manager'

•• Exiba
Exiba aa configuração
configuração atual
atual para
para aa coluna
coluna
ENAME.
ENAME.
COLUMN
COLUMN ename
ename

•• Limpe
Limpe as
as configurações
configurações para
para aa coluna
coluna
ENAME.
ENAME.
COLUMN
COLUMN ename
ename CLEAR
CLEAR

8-21 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Modelos de Formato COLUMN
Elemento Descrição Exemplo Resultado

An Define uma largura de N/A N/A


exibição n

9 Dígito de supressão de um 999999 1234


único zero

0 Aplica o zero à esquerda 099999 01234

$ Cifrão flutuante $9999 $1234

L Moeda local L9999 L1234

. Posição do ponto decimal 9999.99 1234.00

, Separador de milhar 9,999 1,234

8-22 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Usando o Comando BREAK

Suprime
Suprime duplicações
duplicações ee seciona
seciona linhas
linhas
•• Para
Para suprimir
suprimir duplicações
duplicações
SQL>
SQL> BREAK
BREAK ON
ON ename
ename ON
ON job
job

•• Para
Para secionar
secionar linhas
linhas em
em valores
valores de
de quebra
quebra
SQL>
SQL> BREAK
BREAK ON
ON ename
ename SKIP
SKIP 44 ON
ON job
job SKIP
SKIP 22

8-23 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Usando os Comandos
TTITLE e BTITLE

•• Exiba
Exiba cabeçalhos
cabeçalhos ee rodapés.
rodapés.
TTI[TLE]
TTI[TLE] [texto|OFF|ON]
[texto|OFF|ON]

•• Defina
Defina oo cabeçalho
cabeçalho do
do relatório.
relatório.
SQL>
SQL> TTITLE
TTITLE 'Salary|Report'
'Salary|Report'

•• Defina
Defina oo rodapé
rodapé do
do relatório.
relatório.
SQL>
SQL> BTITLE
BTITLE 'Confidential'
'Confidential'

8-24 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Criando um Arquivo de Script
para Executar um Relatório
1.
1. Crie
Crie aa instrução
instrução SQL
SQL SELECT.
SELECT.
2.
2. Salve
Salve aa instrução
instrução SELECT
SELECT emem umum
arquivo
arquivo de de script.
script.
3.
3. Carregue
Carregue oo arquivo
arquivo de
de script
script em
em
um
um editor.
editor.
4.
4. Adicione
Adicione comandos
comandos de de formatação
formatação antes
antes
da
da instrução
instrução SELECT.
SELECT.
5.
5. Verifique
Verifique sese oo caractere
caractere de
de finalização
finalização
segue
segue aa instrução
instrução SELECT.
SELECT.

8-25 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Criando um Arquivo de Script
para Executar um Relatório
6.
6. Limpe
Limpe osos comandos
comandos de de formatação
formatação
depois
depois da
da instrução
instrução SELECT.
SELECT.
7.
7. Salve
Salve oo arquivo
arquivo de
de script.
script.
8.
8. Entre
Entre com
com "START
"START nome_do_arquivo"
nome_do_arquivo"
para
para executar
executar oo script.
script.

8-26 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Exemplo de Relatório
Fri Oct 24 page 1
Employee
Report

Job
Category Employee Salary
----------------------- ----------------------- -----------------
CLERK ADAMS $1,100.00
JAMES $950.00
MILLER $1,300.00
SMITH $800.00
MANAGER BLAKE $2,850.00
CLARK $2,450.00
JONES $2,975.00
SALESMAN ALLEN $1,600.00
MARTIN $1,250.00
TURNER $1,500.00
WARD $1,250.00

Confidential

8-27 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Sumário
•• Use
Use as
as variáveis
variáveis de
de substituição
substituição dodo
SQL*Plus
SQL*Plus para
para armazenar
armazenar valores
valores
temporariamente.
temporariamente.
•• Use
Use os
os comandos
comandos SETSET para
para controlar
controlar oo
ambiente
ambiente SQL*Plus
SQL*Plus atual.
atual.
•• Use
Use oo comando
comando COLUMN
COLUMN parapara controlar
controlar aa
exibição
exibição de
de uma
uma coluna.
coluna.
•• Use
Use oo comando
comando BREAK
BREAK para
para suprimir
suprimir
duplicações
duplicações ee secionar
secionar linhas.
linhas.
•• Use
Use TTITLE
TTITLE ee BTITLE
BTITLE para
para exibir
exibir
cabeçalhos
cabeçalhos ee rodapés.
rodapés.
8-28 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.
Visão Geral do Exercício

• •Criando
Criandouma
umaconsulta
consultapara
paraexibir
exibirvalores
valoresusando
usandovariáveis
variáveisde
desubstituição
substituição
• •Iniciando
Iniciandoum
umarquivo
arquivode
decomando
comandocontendo
contendovariáveis
variáveis
• •Usando o comando ACCEPT
Usando o comando ACCEPT

8-29 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.

Você também pode gostar