produzindo uma saída legível com o sql*plus

29
8 8 Copyright Oracle Corporation, 1999. Todos os direitos reservados. Produzindo uma Saída Legível com o SQL*Plus

Upload: osvaldosan

Post on 14-Jun-2015

1.655 views

Category:

Documents


4 download

DESCRIPTION

banco de dados

TRANSCRIPT

Page 1: Produzindo Uma Saída Legível Com o SQL*Plus

88

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Produzindo uma Saída Legível com o SQL*PlusProduzindo uma Saída

Legível com o SQL*Plus

Page 2: Produzindo Uma Saída Legível Com o SQL*Plus

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

ObjetivosObjetivos

Depois de completar esta lição, você poderá Depois de completar esta lição, você poderá fazer o seguinte:fazer o seguinte:

• Produzir consultas que requeiram uma variável de entrada

• Personalizar o ambiente SQL*Plus

• Produzir saídas mais legíveis

• Criar e executar arquivos de script

• Salvar personalizações

Depois de completar esta lição, você poderá Depois de completar esta lição, você poderá fazer o seguinte:fazer o seguinte:

• Produzir consultas que requeiram uma variável de entrada

• Personalizar o ambiente SQL*Plus

• Produzir saídas mais legíveis

• Criar e executar arquivos de script

• Salvar personalizações

Page 3: Produzindo Uma Saída Legível Com o SQL*Plus

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

Relatórios InterativosRelatórios Interativos

Desejo entrar com valores de consulta em tempo de execução....sal = ? …

… deptno = ? … .. ename = ? ...

UsuárioUsuário

Page 4: Produzindo Uma Saída Legível Com o SQL*Plus

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

Variáveis de SubstituiçãoVariáveis de Substituição

• Use as variáveis de substituição do SQL*Plus para armazenar valores temporariamente.

– "E" comercial único (&)

– "E" comercial duplo (&&)

– Comandos DEFINE e ACCEPT

• Passe os valores da variável entre instruções SQL.

• Altere dinamicamente cabeçalhos e rodapés.

• Use as variáveis de substituição do SQL*Plus para armazenar valores temporariamente.

– "E" comercial único (&)

– "E" comercial duplo (&&)

– Comandos DEFINE e ACCEPT

• Passe os valores da variável entre instruções SQL.

• Altere dinamicamente cabeçalhos e rodapés.

Page 5: Produzindo Uma Saída Legível Com o SQL*Plus

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

Usando a Variável de Substituição &Usando a Variável de Substituição &

Use a variável precedida de um "e" comercial Use a variável precedida de um "e" comercial (&) para solicitar um valor ao usuário.(&) para solicitar um valor ao usuário.Use a variável precedida de um "e" comercial Use a variável precedida de um "e" comercial (&) para solicitar um valor ao usuário.(&) para solicitar um valor ao usuário.

SQL> SELECT empno, ename, sal, deptno 2 FROM emp 3 WHERE empno = &employee_num;

Enter value for employee_num: 73697369

EMPNO ENAME SAL DEPTNO--------- ---------- --------- --------- 7369 SMITH 800 20

Page 6: Produzindo Uma Saída Legível Com o SQL*Plus

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

Usando o Comando SET VERIFYUsando o Comando SET VERIFY

Alterne a exibição do texto de um comando Alterne a exibição do texto de um comando antes e depois do SQL*Plus trocar variáveis de antes e depois do SQL*Plus trocar variáveis de substituição por valores.substituição por valores.

Alterne a exibição do texto de um comando Alterne a exibição do texto de um comando antes e depois do SQL*Plus trocar variáveis de antes e depois do SQL*Plus trocar variáveis de substituição por valores.substituição por valores.

SQL> SET VERIFY ONSQL> SELECT empno, ename, sal, deptno 2 FROM emp 3 WHERE empno = &employee_num;

Enter value for employee_num: 7369old 3: WHERE empno = &employee_numnew 3: WHERE empno = 7369

...

Page 7: Produzindo Uma Saída Legível Com o SQL*Plus

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

Valores de Caractere e Data com Variáveis de SubstituiçãoValores de Caractere e Data

com Variáveis de Substituição

Enter value for job_title: ANALYSTANALYST

ENAME DEPTNO SAL*12---------- --------- ---------SCOTT 20 36000FORD 20 36000

Use aspas simples para valores de caractere Use aspas simples para valores de caractere e data.e data.Use aspas simples para valores de caractere Use aspas simples para valores de caractere e data.e data.

SQL> SELECT ename, deptno, sal*12 2 FROM emp 3 WHERE job='&job_title';

Page 8: Produzindo Uma Saída Legível Com o SQL*Plus

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

Especificando Nomes de Coluna, Expressões e Texto em

Tempo de Execução

Especificando Nomes de Coluna, Expressões e Texto em

Tempo de Execução

Use variáveis de substituição para Use variáveis de substituição para complementar o seguinte:complementar o seguinte:

• Condição WHERE

• Cláusula ORDER BY

• Expressão da coluna

• Nome da tabela

• Toda a instrução SELECT

Use variáveis de substituição para Use variáveis de substituição para complementar o seguinte:complementar o seguinte:

• Condição WHERE

• Cláusula ORDER BY

• Expressão da coluna

• Nome da tabela

• Toda a instrução SELECT

Page 9: Produzindo Uma Saída Legível Com o SQL*Plus

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

Especificando Nomes de Coluna, Expressões e Texto em

Tempo de Execução

Especificando Nomes de Coluna, Expressões e Texto em

Tempo de ExecuçãoSQL> SELECT empno, ename, job, &column_name 2 FROM emp 3 WHERE &condition 4 ORDER BY &order_column;

Enter value for column_name: salsalEnter value for condition: sal>=3000sal>=3000Enter value for order_column: enameename

EMPNO ENAME JOB SAL--------- ---------- --------- --------- 7902 FORD ANALYST 3000 7839 KING PRESIDENT 5000 7788 SCOTT ANALYST 3000

Page 10: Produzindo Uma Saída Legível Com o SQL*Plus

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

Usando a Variável de Substituição &&Usando a Variável de Substituição &&

Use o "e" comercial duplo (&&) se desejar Use o "e" comercial duplo (&&) se desejar reutilizar o valor da variável sem precisar reutilizar o valor da variável sem precisar solicitar sempre o usuário.solicitar sempre o usuário.

Use o "e" comercial duplo (&&) se desejar Use o "e" comercial duplo (&&) se desejar reutilizar o valor da variável sem precisar reutilizar o valor da variável sem precisar solicitar sempre o usuário.solicitar sempre o usuário.

SQL> SELECT empno, ename, job, &&column_name 2 FROM emp 3 ORDER BY &column_name;

Enter value for column_name: deptnodeptno EMPNO ENAME JOB DEPTNO--------- ---------- --------- --------- 7839 KING PRESIDENT 10 7782 CLARK MANAGER 10 7934 MILLER CLERK 10...14 rows selected.

Page 11: Produzindo Uma Saída Legível Com o SQL*Plus

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

Definindo as Variáveis de UsuárioDefinindo as Variáveis de Usuário

• Você pode predefinir variáveis usando um destes dois comandos do SQL*Plus:

– DEFINE: Crie uma variável de usuário de tipo de dados CHAR

– ACCEPT: Leia a entrada do usuário e armazene-a em uma variável

• Se você precisar predefinir uma variável que inclua espaços, deverá colocar o valor entre aspas simples quando utilizar o comando DEFINE.

• Você pode predefinir variáveis usando um destes dois comandos do SQL*Plus:

– DEFINE: Crie uma variável de usuário de tipo de dados CHAR

– ACCEPT: Leia a entrada do usuário e armazene-a em uma variável

• Se você precisar predefinir uma variável que inclua espaços, deverá colocar o valor entre aspas simples quando utilizar o comando DEFINE.

Page 12: Produzindo Uma Saída Legível Com o SQL*Plus

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

O Comando ACCEPTO Comando ACCEPT

• Cria um prompt personalizado durante a aceitação da entrada do usuário

• Define explicitamente uma variável de tipo de dados NUMBER ou DATE

• Oculta a entrada do usuário por motivos de segurança

• Cria um prompt personalizado durante a aceitação da entrada do usuário

• Define explicitamente uma variável de tipo de dados NUMBER ou DATE

• Oculta a entrada do usuário por motivos de segurança

ACCEPT variável [tipo de dados] [FORMAT formato] [PROMPT texto] [HIDE]

ACCEPT variável [tipo de dados] [FORMAT formato] [PROMPT texto] [HIDE]

Page 13: Produzindo Uma Saída Legível Com o SQL*Plus

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

Usando o Comando ACCEPTUsando o Comando ACCEPT

ACCEPT dept PROMPT 'Provide the department name:'SELECT * FROM deptWHERE dname = UPPER('&dept')/

Provide the department name: SalesSales

DEPTNO DNAME LOC--------- -------------- ------------- 30 SALES CHICAGO

Page 14: Produzindo Uma Saída Legível Com o SQL*Plus

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

Comandos DEFINE e UNDEFINEComandos DEFINE e UNDEFINE

• A variável permanece definida até você:

– Usar o comando UNDEFINE para limpá-la;

ou

– Sair do SQL*Plus

• É possível verificar suas alterações com o comando DEFINE.

• Para definir variáveis para cada sessão, modifique o arquivo login.sql de forma que as variáveis sejam criadas na inicialização.

• A variável permanece definida até você:

– Usar o comando UNDEFINE para limpá-la;

ou

– Sair do SQL*Plus

• É possível verificar suas alterações com o comando DEFINE.

• Para definir variáveis para cada sessão, modifique o arquivo login.sql de forma que as variáveis sejam criadas na inicialização.

Page 15: Produzindo Uma Saída Legível Com o SQL*Plus

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

Usando o Comando DEFINEUsando o Comando DEFINE

• Crie uma variável para armazenar o nome do departamento.

• Crie uma variável para armazenar o nome do departamento.

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

• Use a variável da mesma forma que usaria qualquer outra variável.

• Use a variável da mesma forma que usaria qualquer outra variável.

SQL> DEFINE deptname = salesSQL> DEFINE deptname

SQL> SELECT * 2 FROM dept 3 WHERE dname = UPPER('&deptname');

Page 16: Produzindo Uma Saída Legível Com o SQL*Plus

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

Personalizando o Ambiente SQL*Plus

Personalizando o Ambiente SQL*Plus

• Use os comandos SETSET para controlar a sessão atual.

• Verifique o que você definiu usando o comando SHOWSHOW.

• Use os comandos SETSET para controlar a sessão atual.

• Verifique o que você definiu usando o comando SHOWSHOW.

SQL> SET ECHO ONSQL> SET ECHO ON

SQL> SHOW ECHOecho ONecho ON

SQL> SHOW ECHOecho ONecho ON

SET system_variable value SET system_variable value

Page 17: Produzindo Uma Saída Legível Com o SQL*Plus

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

Variáveis do Comando SETVariáveis do Comando SET

• ARRAYSIZE {ARRAYSIZE {2020 | | nn}}

• COLSEP {_ | COLSEP {_ | texttext}}

• FEEDBACKFEEDBACK { {66 | | nn |OFF | ON} |OFF | ON}

• HEADING {OFF | HEADING {OFF | ONON}}

• LINESIZE {LINESIZE {8080 | | nn} }

• LONG {LONG {8080 | | nn}}

• PAGESIZE {PAGESIZE {2424 | | nn}}

• PAUSE {PAUSE {OFFOFF | ON | | ON | texttext}}

• TERMOUT {OFF | TERMOUT {OFF | ONON}}

• ARRAYSIZE {ARRAYSIZE {2020 | | nn}}

• COLSEP {_ | COLSEP {_ | texttext}}

• FEEDBACKFEEDBACK { {66 | | nn |OFF | ON} |OFF | ON}

• HEADING {OFF | HEADING {OFF | ONON}}

• LINESIZE {LINESIZE {8080 | | nn} }

• LONG {LONG {8080 | | nn}}

• PAGESIZE {PAGESIZE {2424 | | nn}}

• PAUSE {PAUSE {OFFOFF | ON | | ON | texttext}}

• TERMOUT {OFF | TERMOUT {OFF | ONON}}

Page 18: Produzindo Uma Saída Legível Com o SQL*Plus

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

Salvando as Personalizações no Arquivo login.sql

Salvando as Personalizações no Arquivo login.sql

• O arquivo login.sql contém o comando SET standard e outros comandos do SQL*Plus que são implementados no login.

• Você pode modificar o login.sql para conter comandos SET adicionais.

• O arquivo login.sql contém o comando SET standard e outros comandos do SQL*Plus que são implementados no login.

• Você pode modificar o login.sql para conter comandos SET adicionais.

Page 19: Produzindo Uma Saída Legível Com o SQL*Plus

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

Comandos de Formato do SQL*Plus

Comandos de Formato do SQL*Plus

• COLUMN [COLUMN [opção da colunaopção da coluna] ]

• TTITLE [TTITLE [texttexto | OFF | ON]o | OFF | ON]

• BTITLE [BTITLE [textotexto | OFF | ON] | OFF | ON]

• BREAK [ON BREAK [ON report_elementreport_element]]

Page 20: Produzindo Uma Saída Legível Com o SQL*Plus

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

O Comando COLUMNO Comando COLUMN

Controla a exibição de uma colunaControla a exibição de uma coluna

• CLE[AR]: Limpa qualquer formato de coluna

• FOR[MAT] formato: Altera a exibição da coluna usando um modelo de formato

• HEA[DING] texto: Define o cabeçalho da coluna

• JUS[TIFY] {alinhamento}: Alinha o cabeçalho da coluna para a esquerda, o centro ou a direita

Controla a exibição de uma colunaControla a exibição de uma coluna

• CLE[AR]: Limpa qualquer formato de coluna

• FOR[MAT] formato: Altera a exibição da coluna usando um modelo de formato

• HEA[DING] texto: Define o cabeçalho da coluna

• JUS[TIFY] {alinhamento}: Alinha o cabeçalho da coluna para a esquerda, o centro ou a direita

COL[UMN] [{coluna|apelido} [opção]]COL[UMN] [{coluna|apelido} [opção]]

Page 21: Produzindo Uma Saída Legível Com o SQL*Plus

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

Usando o Comando COLUMNUsando o Comando COLUMN

• Crie cabeçalhos de coluna.• Crie cabeçalhos de coluna.

• Exiba a configuração atual para a coluna ENAME.

• Exiba a configuração atual para a coluna ENAME.

• Limpe as configurações para a coluna ENAME.

• Limpe as configurações para a coluna ENAME.

COLUMN ename HEADING 'Employee|Name' FORMAT A15COLUMN sal JUSTIFY LEFT FORMAT $99,990.00COLUMN mgr FORMAT 999999999 NULL 'No manager'

COLUMN ename HEADING 'Employee|Name' FORMAT A15COLUMN sal JUSTIFY LEFT FORMAT $99,990.00COLUMN mgr FORMAT 999999999 NULL 'No manager'

COLUMN enameCOLUMN ename

COLUMN ename CLEARCOLUMN ename CLEAR

Page 22: Produzindo Uma Saída Legível Com o SQL*Plus

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

Modelos de Formato COLUMNModelos de Formato COLUMNResultado

N/A

1234

01234

$1234

L1234

1234.00

1,234

Exemplo

N/A

999999

099999

$9999

L9999

9999.99

9,999

Elemento

An

9

0

$

L

.

,

Descrição

Define uma largura de

exibição n

Dígito de supressão de um

único zero

Aplica o zero à esquerda

Cifrão flutuante

Moeda local

Posição do ponto decimal

Separador de milhar

Page 23: Produzindo Uma Saída Legível Com o SQL*Plus

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

Usando o Comando BREAKUsando o Comando BREAK

Suprime duplicações e seciona linhasSuprime duplicações e seciona linhas

• Para suprimir duplicações

Suprime duplicações e seciona linhasSuprime duplicações e seciona linhas

• Para suprimir duplicações

SQL> BREAK ON ename ON jobSQL> BREAK ON ename ON job

SQL> BREAK ON ename SKIP 4 ON job SKIP 2 SQL> BREAK ON ename SKIP 4 ON job SKIP 2

• Para secionar linhas em valores de quebra• Para secionar linhas em valores de quebra

Page 24: Produzindo Uma Saída Legível Com o SQL*Plus

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

Usando os Comandos TTITLE e BTITLE

Usando os Comandos TTITLE e BTITLE

• Exiba cabeçalhos e rodapés.• Exiba cabeçalhos e rodapés.

TTI[TLE] [texto|OFF|ON]TTI[TLE] [texto|OFF|ON]

SQL> TTITLE 'Salary|Report'SQL> TTITLE 'Salary|Report'

• Defina o cabeçalho do relatório. • Defina o cabeçalho do relatório.

• Defina o rodapé do relatório.• Defina o rodapé do relatório.

SQL> BTITLE 'Confidential'SQL> BTITLE 'Confidential'

Page 25: Produzindo Uma Saída Legível Com o SQL*Plus

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

Criando um Arquivo de Script para Executar um Relatório

Criando um Arquivo de Script para Executar um Relatório

1. Crie a instrução SQL SELECT.

2. Salve a instrução SELECT em um arquivo de script.

3. Carregue o arquivo de script em um editor.

4. Adicione comandos de formatação antesda instrução SELECT.

5. Verifique se o caractere de finalização segue a instrução SELECT.

1. Crie a instrução SQL SELECT.

2. Salve a instrução SELECT em um arquivo de script.

3. Carregue o arquivo de script em um editor.

4. Adicione comandos de formatação antesda instrução SELECT.

5. Verifique se o caractere de finalização segue a instrução SELECT.

Page 26: Produzindo Uma Saída Legível Com o SQL*Plus

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

Criando um Arquivo de Script para Executar um Relatório

Criando um Arquivo de Script para Executar um Relatório

6. Limpe os comandos de formataçãodepois da instrução SELECT.

7. Salve o arquivo de script.

8. Entre com "START nome_do_arquivo"para executar o script.

6. Limpe os comandos de formataçãodepois da instrução SELECT.

7. Salve o arquivo de script.

8. Entre com "START nome_do_arquivo"para executar o script.

Page 27: Produzindo Uma Saída Legível Com o SQL*Plus

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

Exemplo de RelatórioExemplo de Relatório

Fri Oct 24 page 1 Employee Report

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

Confidential

Page 28: Produzindo Uma Saída Legível Com o SQL*Plus

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

SumárioSumário

• Use as variáveis de substituição do SQL*Plus para armazenar valores temporariamente.

• Use os comandos SET para controlar o ambiente SQL*Plus atual.

• Use o comando COLUMN para controlar a exibição de uma coluna.

• Use o comando BREAK para suprimir duplicações e secionar linhas.

• Use TTITLE e BTITLE para exibir cabeçalhos e rodapés.

• Use as variáveis de substituição do SQL*Plus para armazenar valores temporariamente.

• Use os comandos SET para controlar o ambiente SQL*Plus atual.

• Use o comando COLUMN para controlar a exibição de uma coluna.

• Use o comando BREAK para suprimir duplicações e secionar linhas.

• Use TTITLE e BTITLE para exibir cabeçalhos e rodapés.

Page 29: Produzindo Uma Saída Legível Com o SQL*Plus

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

Visão Geral do ExercícioVisão Geral do Exercício

• Criando uma consulta para exibir valores usando variáveis de substituição

• Iniciando um arquivo de comando contendo variáveis

• Usando o comando ACCEPT

• Criando uma consulta para exibir valores usando variáveis de substituição

• Iniciando um arquivo de comando contendo variáveis

• Usando o comando ACCEPT