Usando o SQL*Plus MXOLDQRGUHKPHU … · National Standards Institute) SQL É a interface proprietária da Oracle para a execução de instruções SQL Manipula dados e definições
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Ao concluir este apêndice, você será capaz de:• Fazer login no SQL*Plus• Editar comandos SQL• Formatar o resultado usando comandos do SQL*Plus• Interagir com arquivos de script
ObjetivosVocê pode desejar criar instruções SELECT que possam ser usadas indefinidamente. Este apêndice também aborda o uso de comandos do SQL*Plus para executar instruções SQL. Você aprenderácomo formatar o resultado usando comandos do SQL*Plus, editar comandos SQL e salvar scripts no SQL*Plus.
juliano drehmer (juliano@coasulฺcomฺbr) has a non-transferable
SQL e SQL*Plus SQL é uma linguagem de comando usada para comunicação com o servidor Oracle por meio de qualquer ferramenta ou aplicativo. O Oracle SQL contém diversas extensões. Quando você digita uma instrução SQL, ela é armazenada em uma parte da memória chamada de SQL buffer e permanece lá até que você crie uma nova instrução SQL. O SQL*Plus é uma ferramenta da Oracle que reconhece e envia instruções SQL para o Oracle9i Server para serem executadas. Ele contém sua própria linguagem de comandos.Recursos do SQL
• Pode ser usado por uma variedade de usuários, incluindo aqueles com pouca ou nenhuma experiência emprogramação
• É uma linguagem não procedural• Reduz a quantidade de tempo necessária para a criação e a manutenção de sistemas• É uma linguagem em inglês
Recursos do SQL*Plus • Aceita a inserção ad hoc de instruções• Aceita entrada SQL de arquivos• Oferece um editor de linha para a modificação de instruções SQL• Controla as configurações do ambiente• Formata os resultados da consulta em relatórios básicos• Acessa bancos de dados locais e remotos
juliano drehmer (juliano@coasulฺcomฺbr) has a non-transferable
• Faça login no SQL*Plus.• Descreva a estrutura de tabela.• Edite sua instrução SQL.• Execute SQL pelo SQL*Plus.• Salve instruções SQL em arquivos e anexe instruções
SQL a arquivos.• Execute arquivos salvos.• Carregue comandos do arquivo para o buffer para edição.
SQL*PlusO SQL*Plus é um ambiente no qual você pode:
• Executar instruções SQL para recuperar, modificar, adicionar e remover dados do banco de dados
• Formatar, executar cálculos, armazenar e imprimir resultados de consultas no formulário de relatórios
• Criar arquivos de script para armazenar instruções SQL para uso repetido no futuroOs comandos do SQL*Plus podem ser divididos nas seguintes categorias principais:
Categoria Objetivo Environment Afeta o comportamento geral das instruções SQL na sessão
Format Formata os resultados da consulta
File manipulation Salva, carrega e executa arquivos de script
Execution Envia instruções SQL do buffer SQL para o servidor Oracle
Edit Modifica as instruções SQL no buffer
Interaction Cria e especifica variáveis para instruções SQL, imprime valores de variáveis e imprime mensagens na tela
Miscellaneous Conecta-se ao banco de dados, manipula o ambiente SQL*Plus e exibe definições de colunas
juliano drehmer (juliano@coasulฺcomฺbr) has a non-transferable
Fazendo Login no SQL*PlusO modo como você chama o SQL*Plus depende do tipo de sistema operacional ou de ambiente Windows que está em execução.Para fazer login em um ambiente Windows:
1. Selecione Iniciar > Programas > Oracle > Application Development > SQL*Plus.2. Digite o nome do usuário, a senha e o nome do banco de dados.
Para fazer login em um ambiente de linha de comando:1. Efetue logon em sua máquina.2. Digite o comando sqlplus mostrado no slide.
Na sintaxe:• username Seu nome de usuário do banco de dados• password Sua senha do banco de dados (Ela estará visível se você digitá-la aqui).• @database A string de conexão do banco de dados
Observação: Para assegurar a integridade de sua senha, não digite-a no prompt do sistema operacional. Em vez disso, digite apenas seu nome de usuário. Digite a senha no prompt de senha.
juliano drehmer (juliano@coasulฺcomฺbr) has a non-transferable
Alterando as Configurações do Ambiente SQL*PlusVocê tem a opção de alterar a aparência do ambiente SQL*Plus usando a caixa de diálogo SQL*Plus Properties.Na janela do SQL*Plus, clique com o botão direito do mouse na barra de títulos e no menu de atalho exibido, selecione Properties. Você poderá então usar a tab Colors da caixa de diálogo Properties do SQL*Plus para ajustar as opções Screen Background (Plano de fundo da tela) e Screen Text (Texto na tela).
juliano drehmer (juliano@coasulฺcomฺbr) has a non-transferable
Use o comando SQL*Plus DESCRIBE para exibir a estrutura de uma tabela:
DESC[RIBE] tablename
Exibindo a Estrutura de TabelaNo SQL*Plus, você pode exibir a estrutura de uma tabela usando o comando DESCRIBE. O resultado do comando é uma exibição de nomes de colunas e tipos de dados, assim como uma indicação informando se a coluna deve conter dados.Na sintaxe:
tablename O nome de qualquer tabela, view ou sinônimo acessível para o usuário
Para descrever a tabela DEPARTMENTS, use este comando:SQL> DESCRIBE DEPARTMENTSName Null? Type----------------------- -------- ---------------
DEPARTMENT_ID NOT NULL NUMBER(4)DEPARTMENT_NAME NOT NULL VARCHAR2(30)MANAGER_ID NUMBER(6)LOCATION_ID NUMBER(4)
juliano drehmer (juliano@coasulฺcomฺbr) has a non-transferable
Name Null? Type----------------------- -------- ------------DEPARTMENT_ID NOT NULL NUMBER(4)DEPARTMENT_NAME NOT NULL VARCHAR2(30)MANAGER_ID NUMBER(6)LOCATION_ID NUMBER(4)
DESCRIBE departments
Exibindo a Estrutura de Tabela (continuação)O exemplo no slide exibe informações sobre a estrutura da tabela DEPARTMENTS. No resultado:Null?: Especifica se uma coluna deve conter dados (NOT NULL indica que a coluna deve conter
dados).Type: Exibe o tipo de dados de uma coluna
juliano drehmer (juliano@coasulฺcomฺbr) has a non-transferable
Observação: Você pode inserir apenas um comando SQL*Plus para cada prompt SQL. Os comandos SQL*Plus não são armazenados no buffer. Para continuar um comando do SQL*Plus na linha seguinte, finalize a primeira linha com um hífen (-).
Comando Descrição I[NPUT] Insere um número indefinido de linhas
I[NPUT] text Insere uma linha que consiste em text
L[IST] Lista todas as linhas no buffer SQL
L[IST] n Lista uma linha (especificada por n)
L[IST] m n Lista uma faixa de linhas (m a n) inclusive
R[UN] Exibe e executa a instrução SQL atual no buffer
n Especifica a linha que se tornará a atual
n text Substitui a linha n por text
0 text Insere uma linha antes da linha 1
juliano drehmer (juliano@coasulฺcomฺbr) has a non-transferable
Usando LIST, n e APPEND• Use o comando L[IST] para exibir o conteúdo do buffer SQL. O asterisco (*) ao lado da linha
2 no buffer indica que a linha 2 é a linha atual. Quaisquer edições feitas se aplicam à linha atual.• Altere o número da linha atual digitando o número (n) da linha que deseja editar. A nova linha
atual será exibida.• Use o comando A[PPEND] para adicionar texto à linha atual. A linha recém-editada será
exibida. Verifique o novo conteúdo do buffer usando o comando LIST.Observação: Muitos comandos do SQL*Plus, incluindo LIST e APPEND, podem ser abreviados para apenas sua primeira letra. LIST pode ser abreviado para L; APPEND pode ser abreviado para A.
juliano drehmer (juliano@coasulฺcomฺbr) has a non-transferable
c/employees/departments1* SELECT * from departments
LIST
1* SELECT * from departments
Usando o Comando CHANGE• Use o comando L[IST] para exibir o conteúdo do buffer.• Use o comando C[HANGE] para alterar o conteúdo da linha atual no buffer SQL. Neste caso,
substitua a tabela employees pela tabela departments. A nova linha atual será exibida.• Use o comando L[IST] para verificar o novo conteúdo do buffer.
juliano drehmer (juliano@coasulฺcomฺbr) has a non-transferable
Comandos de Arquivo do SQL*PlusAs instruções SQL se comunicam com o servidor Oracle. Os comandos SQL*Plus controlam o ambiente, formatam os resultados das consultas e gerenciam arquivos. Você pode usar os comandos descritos na tabela a seguir:
Salva o conteúdo atual do buffer SQL em um arquivo. Use APPEND para adicionar o conteúdo a um arquivo existente e REPLACE para sobregravar um arquivo existente. A extensão default é .sql
GET filename [.ext]
Grava o conteúdo de um arquivo salvo anteriormente no buffer SQL. A extensão default do nome do arquivo é .sql.
STA[RT] filename [.ext] Executa um arquivo de comandos salvo anteriormente
@ filename Executa um arquivo de comandos salvo anteriormente (igual a START)
ED[IT]
Acessa o editor e salva o conteúdo do buffer no arquivo afiedt.buf
ED[IT] [filename[.ext]] Acessa o editor para editar o conteúdo de um arquivo salvo
SPO[OL] [filename[.ext]|OFF|OUT]
Armazena os resultados da consulta em um arquivo. OFF fecha o arquivo de spool. OUT fecha o arquivo de spool e envia os resultados do arquivo para a impressora.
EXIT Encerra o SQL*Plus
juliano drehmer (juliano@coasulฺcomฺbr) has a non-transferable
Use o comando SAVE para armazenar o conteúdo atual do buffer em um arquivo. Dessa maneira, você pode armazenar scripts usados frequentemente para serem usados no futuro.START
Use o comando START para executar um script no SQL*Plus. Você também pode, como alternativa, usar o símbolo @ para executar um script.
@my_query
juliano drehmer (juliano@coasulฺcomฺbr) has a non-transferable
Usando os comandos SAVE, START e EDIT (continuação)EDIT
Use o comando EDIT para editar um script existente. Essa ação abrirá um editor com o arquivo de script. Quando tiver feito as alterações, saia do editor para voltar para a linha de comando do SQL*Plus.Observação: O caractere “/” é um delimitador que representa o fim de uma instrução. Quando encontrado em um arquivo, o SQL*Plus executa a instrução antes de seu delimitador. O delimitador precisa ser o primeiro caractere de uma nova linha seguindo imediatamente a instrução.
juliano drehmer (juliano@coasulฺcomฺbr) has a non-transferable
Comando SERVEROUTPUTA maioria dos programas PL/SQL executam entrada e saída por meio de instruções SQL, para armazenar dados em tabelas de banco de dados ou consultar essas tabelas. Toda a entrada/saída PL/SQL restante é feita por meio de APIs que interagem com outros programas. Por exemplo, o pacote DBMS_OUTPUT possui procedimentos como PUT_LINE. A consulta de um resultado fora do PL/SQL requer outro programa como o SQL*Plus, para ler e processar os dados passados para DBMS_OUTPUT.O SQL*Plus não exibirá os dados de DBMS_OUTPUT a não ser que você primeiro envie o comando SET SERVEROUTPUT ON do SQL*Plus conforme a seguir:
SET SERVEROUTPUT ON
Observação • SIZE define o número de bytes da saída que pode ser armazenada em buffer no servidor do
Banco de Dados Oracle. O padrão é UNLIMITED. n não pode ser menos de 2.000 ou mais de 1.000.000.
• Para obter informações adicionais sobre SERVEROUTPUT, consulte o Oracle Database PL/SQL User's Guide and Reference 11g.
juliano drehmer (juliano@coasulฺcomฺbr) has a non-transferable
file_name[.ext] Envia o resultado para o nome de arquivo especificado
CRE[ATE] Cria um novo arquivo com o nome especificado
REP[LACE] Substitui o conteúdo de um arquivo existente. Se o arquivo não existir, REPLACE criará o arquivo.
APP[END] Adiciona o conteúdo do buffer ao final do arquivo especificado
OFF Interrompe o envio
OUT Interrompe o envio e envia o arquivo para a impressora padrão de seu computador
Usando o Comando SPOOL do SQL*PlusO comando SPOOL armazena os resultados da consulta em um arquivo ou, como opção, envia o arquivo para uma impressora. O comando SPOOL foi aprimorado. Você agora pode anexar ou substituir um arquivo existente, anteriormente só era possível usar o comando SPOOL para criar (e substituir) um arquivo. REPLACE é o padrão. Para enviar a saída gerada pelos comandos em um script sem exibir a saída na tela, use SET TERMOUT OFF. SET TERMOUT OFF não afeta a saída de comandos executados de forma interativa.Você deve usar aspas nos nomes de arquivos que contêm espaço em branco. Para criar um arquivo HTML válido usando os comandos SPOOL APPEND, você deve usar PROMPT ou um comando similar para criar o cabeçalho e o rodapé da página HTML. O comando SPOOL APPEND não efetua parse de tags HTML. SET SQLPLUSCOMPAT[IBILITY] para 9,2 ou anterior para desativar os parâmetros CREATE, APPEND e SAVE.
juliano drehmer (juliano@coasulฺcomฺbr) has a non-transferable
• Exibe um relatório após a execução bem-sucedida de instruções SQL DML como SELECT, INSERT, UPDATEou DELETE
• Pode incluir, como opção, o caminho de execução da consulta e as estatísticas de execução
SET AUTOT[RACE] {ON | OFF | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]
SET AUTOTRACE ON-- The AUTOTRACE report includes both the optimizer-- execution path and the SQL statement execution -- statistics
Usando o Comando AUTOTRACEEXPLAIN mostra o caminho de execução da consulta executando EXPLAIN PLAN. STATISTICSexibe as estatísticas da instrução SQL. A formatação do relatório AUTOTRACE poderá variar dependendo da versão do servidor ao qual você está conectado e da configuração desse servidor. O package DBMS_XPLAN oferece uma maneira fácil de exibir o resultado do comando EXPLAIN PLAN em vários formatos predefinidos.Observação
• Para obter informações adicionais sobre o package e os subprogramas, consulte o tab Oracle Database PL/SQL Packages and Types Reference 11g .
• Para obter informações adicionais sobre EXPLAIN PLAN, consulte Oracle Database SQL Reference 11g.
• Para obter informações adicionais sobre Planos de Execução e estatísticas, consulte Oracle Database Performance Tuning Guide 11g.
juliano drehmer (juliano@coasulฺcomฺbr) has a non-transferable
Neste apêndice você aprendeu a usar o SQL*Plus como um ambiente para fazer o seguinte:• Executar instruções SQL• Editar instruções SQL• Formatar a saída• Interagir com arquivos de script
ResumoO SQL*Plus é um ambiente de execução que pode ser usado para enviar comandos SQL para o servidor de banco de dados e para editar e salvar comandos SQL. Você pode executar comandos no prompt do SQL ou por um arquivo de script.
juliano drehmer (juliano@coasulฺcomฺbr) has a non-transferable