如何个性化设置自己的sql*plus环境(一)

2014-11-24 11:26:23 · 作者: · 浏览: 0

如何个性化设置自己的sql*plus环境
sql*plus简单,强大和无处不在。用sql*plus主要做什么呢?
1)autotrace
2) 编程
sql*plus会自动运行glogin.sql,该脚本包含全局默认设置。我们可按需自定义自己的sql*plus环境。 www.2cto.com
1)、首先在 系统的环境设置中定义一个环境变量SQLPATH,把你自己的环境设置脚本login.sql和connect.sql
分别放在SQLPATH目录下。
2)、定义一个login.sql脚本,此脚本是SQL*PLUS打开的时候自动执行的脚本。
3)、定义一个脚本connect.sql,此脚本是在身份切换时,调用的脚本。
在实现这login.sql这个脚本,我们需要先掌握些基本的sql*plus知识。
友情提醒:命令太多不必记住。
a]help index
b]help 命令
这两步合起来,友善的sql*plus就会告诉你了。
1)执行一个sql脚本
@
@@:执行嵌套脚本。说明嵌套脚本和宿主在同一个目录下。
练习:
在$ORACLE_HOME/dbs下有脚本think.sql和sub_think.sql。
think.sql的内容是:@@sub_think.sql
则我们可以这样执行:
@$ORACLE_HOME/dbs/think.sql
2)对当前的输入进行编辑
edit
通常我们说的DML,DDL,DCL等都是sql*plus语句,他们执行完会被保存在sql buffer的内存区域,并且只能保存一条最近执行的sql语句。
3)重新运行在sql buffer中的语句
/ www.2cto.com
4)将显示的内容输出到指定文件
spool filename
/*你在sql*plus中所做的任何事*/
spool off
然后你就可以到file所在路径查看。
5)col命令
a] 改变缺省的列标题
COL 默认列标题 HEADING 自定义列标题
[sql]
SQL> select first_change# from v$log;
FIRST_CHANGE#
-------------
680280
638906
659033
SQL> col first_change# heading think
SQL> /
www.2cto.com
think
----------
680280
638906
659033
SQL> col first_change# heading "go into current's scn"
SQL> /
go into current's scn
---------------------
680280
638906
659033
SQL> col first_change# heading "fisrt_change#|go into current"
SQL> /
fisrt_change#
go into current
---------------
680280
638906
659033
b] 改变列的显示长度
col 字段名 for a多少
这里有个问题,我们需要注意。在sql*plus中,列的显示总是从最左边开始。而且,字符值左对齐;数值右对齐。
下面的例子可以说明。
[sql]
SQL> select ename,job,deptno from scott.emp where rownum=1;
www.2cto.com
ENAME JOB DEPTNO
---------- --------- ----------
SMITH CLERK 20
SQL> col ename for a20
SQL> /
ENAME JOB DEPTNO
-------------------- --------- ----------
SMITH CLERK 20
SQL> col deptno for a20
SQL> /
ENAME JOB DEPTNO
-------------------- --------- ----------
SMITH CLERK ##########
c] 设置列标题的对齐方式
col 字段名 justify [L|R|C]
[sql]
SQL> /
www.2cto.com
ENAME JOB DEPTNO
---------- --------- ----------
SMITH CLERK 20
SQL> col job justify c
SQL> /
ENAME JOB DEPTNO
---------- --------- ----------
SMITH CLERK 20
d]设置一个列的回绕方式
col 字段名 for axx
按需选择下面一个
col 字段名 wrapped 或者
col 字段名 word_wrapped 或者
col 字段名 truncated
[sql]
SQL> select * from t;
TEXT
--------------------------------------------------------------------------------
I must work hard for my parents
SQL> col text for a6
SQL> /
TEXT
------
I must
work
hard f
or my
parent
s
SQL> col text word_wrapped
SQL> / www.2cto.com
TEXT
------
I
must
work
hard
for
my
parent
s
SQL> col text truncated
SQL> /