Usando o SQL*Plus MXOLDQRGUHKPHU … · National Standards Institute) SQL É a interface...

20
Copyright © 2009, Oracle. Todos os direitos reservados. Usando o SQL*Plus juliano drehmer (juliano@coasulcombr) has a non-transferable license to use this Student Guide Unauthorized reproduction or distribution prohibited Copyright© 2011, Oracle and/or its affiliates

Transcript of Usando o SQL*Plus MXOLDQRGUHKPHU … · National Standards Institute) SQL É a interface...

Page 1: 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

Copyright © 2009, Oracle. Todos os direitos reservados.

Usando o SQL*Plus

juliano drehmer (juliano@coasulฺcomฺbr) has a non-transferable

license to use this Student Guideฺ

Una

utho

rized

repr

oduc

tion

or d

istri

butio

n pr

ohib

itedฺ

Cop

yrig

ht©

201

1, O

racl

e an

d/or

its

affil

iate

sฺ

Page 2: 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

Oracle Database 11g: Fundamentos de SQL I D - 2

Copyright © 2009, Oracle. Todos os direitos reservados.

Objetivos

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

license to use this Student Guideฺ

Una

utho

rized

repr

oduc

tion

or d

istri

butio

n pr

ohib

itedฺ

Cop

yrig

ht©

201

1, O

racl

e an

d/or

its

affil

iate

sฺ

Page 3: 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

Oracle Database 11g: Fundamentos de SQL I D - 3

Copyright © 2009, Oracle. Todos os direitos reservados.

Interação entre SQL e o SQL*Plus

Buffer

ServidorInstruções SQL

Resultados da consulta

Scripts SQL

SQL*Plus

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

license to use this Student Guideฺ

Una

utho

rized

repr

oduc

tion

or d

istri

butio

n pr

ohib

itedฺ

Cop

yrig

ht©

201

1, O

racl

e an

d/or

its

affil

iate

sฺ

Page 4: 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

Oracle Database 11g: Fundamentos de SQL I D - 4

Copyright © 2009, Oracle. Todos os direitos reservados.

Instruções SQL VersusComandos do SQL*Plus

SQL• Uma linguagem• de padrão ANSI• As palavras-chave não

podem ser abreviadas• As instruções manipulam

os dados e as definições de tabelas no banco de dados

InstruçõesSQL

BufferSQL

Comandos SQL*Plus

Buffer SQL*Plus

SQL*Plus • Um ambiente• Proprietário da Oracle• As palavras-chave

podem ser abreviadas• Os comandos não

permitem a manipulação de valores no banco de dados

SQL e SQL*Plus (continuação)A tabela a seguir compara o SQL e o SQL*Plus:

SQL SQL*Plus É uma linguagem para a comunicação com o servidor Oracle a fim de acessar os dados

Reconhece instruções SQL e as envia ao servidor

É baseada no padrão ANSI (American National Standards Institute) SQL

É a interface proprietária da Oracle para a execução de instruções SQL

Manipula dados e definições de tabelas no banco de dados

Não permite a manipulação de valores no banco de dados

É incluída no buffer SQL em uma ou mais linhas

É incluído em uma linha de cada vez; não é armazenado no buffer SQL

Não tem um caractere de continuação Utiliza um traço (–) como caractere de continuação se o comando ultrapassa uma linha

Não pode ser abreviada Pode ser abreviado

Utiliza um caractere de finalização para executar os comandos imediatamente

Não requer caracteres de finalização; executa os comandos imediatamente

Utiliza funções para aplicar formatação Utiliza comandos para formatar dados

juliano drehmer (juliano@coasulฺcomฺbr) has a non-transferable

license to use this Student Guideฺ

Una

utho

rized

repr

oduc

tion

or d

istri

butio

n pr

ohib

itedฺ

Cop

yrig

ht©

201

1, O

racl

e an

d/or

its

affil

iate

sฺ

Page 5: 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

Oracle Database 11g: Fundamentos de SQL I D - 5

Copyright © 2009, Oracle. Todos os direitos reservados.

Visão Geral do SQL*Plus

• 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

license to use this Student Guideฺ

Una

utho

rized

repr

oduc

tion

or d

istri

butio

n pr

ohib

itedฺ

Cop

yrig

ht©

201

1, O

racl

e an

d/or

its

affil

iate

sฺ

Page 6: 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

Oracle Database 11g: Fundamentos de SQL I D - 6

Copyright © 2009, Oracle. Todos os direitos reservados.

sqlplus [username[/password[@database]]]

Fazendo Login no SQL*Plus

1

2

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

license to use this Student Guideฺ

Una

utho

rized

repr

oduc

tion

or d

istri

butio

n pr

ohib

itedฺ

Cop

yrig

ht©

201

1, O

racl

e an

d/or

its

affil

iate

sฺ

Page 7: 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

Oracle Database 11g: Fundamentos de SQL I D - 7

Copyright © 2009, Oracle. Todos os direitos reservados.

Alterando as Configurações do Ambiente SQL*Plus

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

license to use this Student Guideฺ

Una

utho

rized

repr

oduc

tion

or d

istri

butio

n pr

ohib

itedฺ

Cop

yrig

ht©

201

1, O

racl

e an

d/or

its

affil

iate

sฺ

Page 8: 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

Oracle Database 11g: Fundamentos de SQL I D - 8

Copyright © 2009, Oracle. Todos os direitos reservados.

Exibindo a Estrutura de Tabela

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

license to use this Student Guideฺ

Una

utho

rized

repr

oduc

tion

or d

istri

butio

n pr

ohib

itedฺ

Cop

yrig

ht©

201

1, O

racl

e an

d/or

its

affil

iate

sฺ

Page 9: 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

Oracle Database 11g: Fundamentos de SQL I D - 9

Copyright © 2009, Oracle. Todos os direitos reservados.

Exibindo a Estrutura de Tabela

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

license to use this Student Guideฺ

Una

utho

rized

repr

oduc

tion

or d

istri

butio

n pr

ohib

itedฺ

Cop

yrig

ht©

201

1, O

racl

e an

d/or

its

affil

iate

sฺ

Page 10: 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

Oracle Database 11g: Fundamentos de SQL I D - 10

Copyright © 2009, Oracle. Todos os direitos reservados.

Comandos de Edição do SQL*Plus

• A[PPEND] text

• C[HANGE] / old / new

• C[HANGE] / text /

• CL[EAR] BUFF[ER]

• DEL

• DEL n

• DEL m n

Comandos de Edição do SQL*PlusOs comandos do SQL*Plus são inseridos em uma linha por vez e não são armazenados no buffer SQL.

Diretrizes• Se você pressionar [Enter] antes de concluir um comando, o SQL*Plus solicitará um número de

linha.• Você pode finalizar o buffer SQL digitando um dos caracteres finalizadores (ponto e vírgula ou

barra) ou pressionando [Enter] duas vezes. O prompt SQL será exibido.

Comando Descrição A[PPEND] text Adiciona texto ao final da linha atual C[HANGE] / old / new

Altera o texto old para o texto new na linha atual

C[HANGE] / text / Deleta text da linha atual

CL[EAR] BUFF[ER] Deleta todas as linhas do buffer SQL DEL Delete a linha atual DEL n Deleta a linha n DEL m n Deleta as linhas m a n inclusive

juliano drehmer (juliano@coasulฺcomฺbr) has a non-transferable

license to use this Student Guideฺ

Una

utho

rized

repr

oduc

tion

or d

istri

butio

n pr

ohib

itedฺ

Cop

yrig

ht©

201

1, O

racl

e an

d/or

its

affil

iate

sฺ

Page 11: 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

Oracle Database 11g: Fundamentos de SQL I D - 11

Copyright © 2009, Oracle. Todos os direitos reservados.

Comandos de Edição do SQL*Plus

• I[NPUT]

• I[NPUT] text

• L[IST]

• L[IST] n

• L[IST] m n

• R[UN]

• n

• n text

• 0 text

Comandos de Edição do SQL*Plus (continuação)

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

license to use this Student Guideฺ

Una

utho

rized

repr

oduc

tion

or d

istri

butio

n pr

ohib

itedฺ

Cop

yrig

ht©

201

1, O

racl

e an

d/or

its

affil

iate

sฺ

Page 12: 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

Oracle Database 11g: Fundamentos de SQL I D - 12

Copyright © 2009, Oracle. Todos os direitos reservados.

Usando LIST, n e APPEND

LIST1 SELECT last_name2* FROM employees

11* SELECT last_name

A , job_id1* SELECT last_name, job_id

LIST1 SELECT last_name, job_id2* FROM employees

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

license to use this Student Guideฺ

Una

utho

rized

repr

oduc

tion

or d

istri

butio

n pr

ohib

itedฺ

Cop

yrig

ht©

201

1, O

racl

e an

d/or

its

affil

iate

sฺ

Page 13: 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

Oracle Database 11g: Fundamentos de SQL I D - 13

Copyright © 2009, Oracle. Todos os direitos reservados.

Usando o Comando CHANGE

LIST1* SELECT * from employees

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

license to use this Student Guideฺ

Una

utho

rized

repr

oduc

tion

or d

istri

butio

n pr

ohib

itedฺ

Cop

yrig

ht©

201

1, O

racl

e an

d/or

its

affil

iate

sฺ

Page 14: 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

Oracle Database 11g: Fundamentos de SQL I D - 14

Copyright © 2009, Oracle. Todos os direitos reservados.

Comandos de Arquivo do SQL*Plus

• SAVE filename

• GET filename

• START filename

• @ filename

• EDIT filename

• SPOOL filename

• EXIT

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:

Comando Descrição SAV[E] filename [.ext] [REP[LACE]APP[END]]

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

license to use this Student Guideฺ

Una

utho

rized

repr

oduc

tion

or d

istri

butio

n pr

ohib

itedฺ

Cop

yrig

ht©

201

1, O

racl

e an

d/or

its

affil

iate

sฺ

Page 15: 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

Oracle Database 11g: Fundamentos de SQL I D - 15

Copyright © 2009, Oracle. Todos os direitos reservados.

Usando os Comandos SAVE, START e EDIT

LIST1 SELECT last_name, manager_id, department_id2* FROM employees

SAVE my_queryCreated file my_query

START my_query

LAST_NAME MANAGER_ID DEPARTMENT_ID------------------------- ---------- -------------King 90Kochhar 100 90...107 rows selected.

Usando os Comandos SAVE, START e EDITSAVE

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

license to use this Student Guideฺ

Una

utho

rized

repr

oduc

tion

or d

istri

butio

n pr

ohib

itedฺ

Cop

yrig

ht©

201

1, O

racl

e an

d/or

its

affil

iate

sฺ

Page 16: 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

Oracle Database 11g: Fundamentos de SQL I D - 16

Copyright © 2009, Oracle. Todos os direitos reservados.

Usando os Comandos SAVE, START e EDIT

EDIT my_query

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

license to use this Student Guideฺ

Una

utho

rized

repr

oduc

tion

or d

istri

butio

n pr

ohib

itedฺ

Cop

yrig

ht©

201

1, O

racl

e an

d/or

its

affil

iate

sฺ

Page 17: 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

Oracle Database 11g: Fundamentos de SQL I D - 17

Copyright © 2009, Oracle. Todos os direitos reservados.

Comando SERVEROUTPUT

• Use o comando SET SERVEROUT[PUT] para controlar se o resultado dos procedimentos armazenados ou os blocos PL/SQL deverão ser exibidos no SQL*Plus.

• O limite de comprimento da linha DBMS_OUTPUT é aumentado de 255 bytes para 32767 bytes.

• O tamanho padrão agora é ilimitado.• Os recursos não são pré-alocados quando SERVEROUTPUT

está definido.• Como não há penalidades de desempenho, use o UNLIMITED,

a não ser que você deseje preservar memória física.

SET SERVEROUT[PUT] {ON | OFF} [SIZE {n | UNL[IMITED]}] [FOR[MAT] {WRA[PPED] | WOR[D_WRAPPED] | TRU[NCATED]}]

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

license to use this Student Guideฺ

Una

utho

rized

repr

oduc

tion

or d

istri

butio

n pr

ohib

itedฺ

Cop

yrig

ht©

201

1, O

racl

e an

d/or

its

affil

iate

sฺ

Page 18: 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

Oracle Database 11g: Fundamentos de SQL I D - 18

Copyright © 2009, Oracle. Todos os direitos reservados.

Usando o Comando SPOOL do SQL*Plus

SPO[OL] [file_name[.ext] [CRE[ATE] | REP[LACE] | APP[END]] | OFF | OUT]

Opção Descrição

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

license to use this Student Guideฺ

Una

utho

rized

repr

oduc

tion

or d

istri

butio

n pr

ohib

itedฺ

Cop

yrig

ht©

201

1, O

racl

e an

d/or

its

affil

iate

sฺ

Page 19: 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

Oracle Database 11g: Fundamentos de SQL I D - 19

Copyright © 2009, Oracle. Todos os direitos reservados.

Usando o Comando AUTOTRACE

• 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

license to use this Student Guideฺ

Una

utho

rized

repr

oduc

tion

or d

istri

butio

n pr

ohib

itedฺ

Cop

yrig

ht©

201

1, O

racl

e an

d/or

its

affil

iate

sฺ

Page 20: 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

Oracle Database 11g: Fundamentos de SQL I D - 20

Copyright © 2009, Oracle. Todos os direitos reservados.

Resumo

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

license to use this Student Guideฺ

Una

utho

rized

repr

oduc

tion

or d

istri

butio

n pr

ohib

itedฺ

Cop

yrig

ht©

201

1, O

racl

e an

d/or

its

affil

iate

sฺ