produzindo uma saída legível com o sql*plus
Post on 14-Jun-2015
1.655 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
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
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
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.
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
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
...
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';
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
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
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.
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.
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]
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
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.
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');
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
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}}
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.
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]]
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]]
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
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
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
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'
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.
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.
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
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.
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
top related