maio 142015
 

Quem usa o SQL*Plus sabe o quão chato é ficar usando o backspace para corrigir os comandos com erros de sintaxe.

Mas será que não existe nenhum atalho para agilizar a edição de scripts ou linhas no SQL*Plus ?

Tem sim, para editar comandos no SQL*Plus temos pelo menos duas alternativas:

Usar o Editor padrão do Sistema Operacional

Primeiramente voce tem que definir o editor a ser usado, como o vi. Faça isso dentro do SQL*Plus:

SQL> DEFINE _EDITOR=vi
Depois você pode simplesmente usar o comando EDIT para editar o comando que você esta executando.

Você pode também editar um arquivo especifico:

SQL> EDIT mysql.sql
Olha um exemplo:
SQL> select * frm dual;
select * frm dual
         *
ERROR at line 1:
ORA-00923: FROM keyword not found where expected
SQL> edit
Wrote file afiedt.buf
  1* select * from dual
SQL> /
D
-
X

Usando as funcionalidades de edição do próprio SQL*Plus

A princípio pode parecer difícil, mas depois de um tempo pegamos a prática e nos acostumamos a editar desta maneira.

Temos os seguintes comandos para usar:

A texto -> Ele concatena o texto no fim da linha atual

Exemplo:

SQL> list
  1* select * from
SQL> A  dual;
  1* select * from dual
SQL> /
 
D
-
X

C/velha/nova -> Ele altera a palavra “velha” para a “nova”

Exemplo:
SQL> select * frm dual;
select * frm dual
         *
ERROR at line 1:
ORA-00923: FROM keyword not found where expected
 
SQL> list
  1* select * frm dual
SQL> C/frm/from
  1* select * from dual
SQL> list
  1* select * from dual
SQL> /
 
D
-
X

C/palavra -> Ele remove a “palavra” do seu comando

Exemplo:
SQL> select * from frm dual;
select * from frm dual
              *
ERROR at line 1:
ORA-00942: table or view does not exist
 
SQL> C/frm
  1* select * from  dual
SQL> /
 
D
-
X

DEL -> Apaga a linha atual, ou então pode-se especificar o número da linha a ser apagada

Exemplo:
SQL> select * from dual
  2  where 1=2;
 
no rows selected
 
SQL> list
  1  select * from dual
  2* where 1=2
SQL> DEL 2
SQL> list
  1* select * from dual
SQL> /
 
D
-
X

L -> lista todos as linhas que estão no buffer do SQL*Plus

Exemplo:
SQL> select * from dual;
 
D
-
X
 
SQL> list
  1* select * from dual

CLEAR BUFFER -> Limpa o buffer do SQL*Plus

Exemplo:
SQL> select * from dual;
 
D
-
X
 
SQL> list
  1* select * from dual
SQL> clear buffer
buffer cleared
SQL> list
SP2-0223: No lines in SQL buffer.
Espero que tenham gostado !

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)