linux下Oracle操作

sqlplus编辑命令行用法

关键词: oracle  sqlplus 命令行用法

oracle数据库有很多查询工具,例如大名鼎鼎PLSQL,习惯了图形界面之后,再来面对字符界面的sqlplus真是一种折磨,但不知那位仙人说过“存在就是合理”。

有时候恰恰需要在字符界面环境下工作,例如客户现场,Unix、Linux、AIX操作系统下等等,本文讨论的就是在sqlplus中的一些简单的编辑命令。

1、登陆数据库

sqlplus 用户名/密码[@实例名]
例如:sqlplus test/test@orac

注:1、实例名就是你的oracle_sid宏的定义,注意密码跟实例之间没有空格

2、断开数据库连接

sql < disconnect 

3、更改数据库连接用户

sql < connect system/oracle@orac

4、设置行大小,页大小

sql < set linesize 200

sql < set pagesize 10

5、执行脚本,“/” “r” “;” 皆可

sql < select count(*) from order

sql < /

6、列出上一脚本,l

SQL> l
  1  select * from order
  2* where num='8888'

1,2代表行号,带*号代表当前行

7、切换行号,直接输入数字行号即可

SQL> 1
  1* select * from order

8、删除行,del n,n代表行号数字
SQL> l
  1  select * from order
  2* where num='8888'
SQL> del 2
SQL> l
  1* select * from order

9、增加行,i活动行后插入新行粘贴,a当前行后粘贴

SQL> l
  1* select * from order
SQL> i where num='1021'
SQL> l
  1  select * from order
  2* where num='1021'

SQL> a  tableb
  1* select * from order tableb

*注意a后面要空至少两个格,否则可能会出现operatortableb效果

10、修改内容 c\原内容\新内容

SQL> c \tableb\tablea
  1* select * from order tablea

总结下:

l -- 列sql

n -- 切换活动行(n代表行数字)

a -- 活动行后增加(append)

i -- 活动行后插入新行增加(imput)

c -- 替换(change)

del n -- 删除行n

/ -- 执行sql

11、设置默认编辑器

上面说了sqlplus里一些基本语法,当然如果你习惯用vi的话,可以把默认编辑设置成vi,如下:

SQL> set _EDITOR=vi

SQL> ed

键入ed,则sqlplus自动切换到vi,在vi中修改sql,存盘,会自动重新读入到sqlplus的缓冲区(类似sybase里isql下直接键入vi)。

你还可以把编辑器设置存到配置文件,每次自动使用该配置;

修改$ORACLE_HOME/sqlplus/admin/glogin.sql配置文件,增加define _editor=vi即可,sqlplus启动的时候会读取glogin.sql脚本。