oracle配置会话环境(set命令) -- 转自网络

一般在SQL>下进行SQLPLUS 操作,都需要进行必要的环境设置才能完成我们所需要的输出。所有环境的设置由 SET命令加相应的环境变量来完成。下面是常用的环境设置:
§2.5.1 ARRAYSIZE(取回的行数)
SET ARRAY[SIZE]{integer}一次可以提取(Fetch)的行的数目,1->5000,当有较长字段时应设小些。
§2.5.2 AUTOCOMMIT(自动提交)
SET AUTO [COMMIT] { [ OFF | ON | IMM | n] }用于在操作中是自动提交或是部分提交或是不自动提交。1) 或IMM使得在完成每条SQL语句时将未提交的改变立刻提交给数据库系统。ON2) 允许在用户发出COMMIT后,可以执行命令的数量(将n条SQL语句所做的改变进行提交)。N 3) 停止自动提交,用户必须用COMMIT命令才能被提交。OFF[@more@]


§2.5.3 LINESIZE(行显示宽度)
可以设置 LINESIZE 环境变量来控制行的显示宽度,缺省是80个字符。SET Lin[esize]{80|integer}Integer = 设置行宽度(字符个数),最大值999,如:SQL>set linesize 160
§2.5.4 LONG(长类型显示字节数)
在缺省的SQL> 状态下,SQL>缓冲区用于显示LONG 的字节数只有80个字符。如果我们需要查询的列中含有 LONG类型的字段的话,就需要将LONG缓冲区设置大些。SET LONG{80|integer}Integer 是 显示或拷贝long值的最大宽度, n=1->32767(但必须小于Maxdata值)SQL>show Maxdata (最大行宽)SQL>set long 2000
§2.5.5 PAGESIZE(页行数)
在缺省的SQL> 状态下,SQL>缓冲区显示页的行数是24行,其中22行显示数据,2行显示标题和横线。我们将pagesize 设置大些以减少提示标题和横线。SET pag[esize] {24|integer}SQL>SET pagesize 66
§2.5.6 PAUSE(暂停)
可以设置 PAUSE 为ON 或OFF来控制屏幕显示。当设置为ON 时,在select 语句发出后需要按Enter键才能显示一屏。SET PAUSE [ ON | OFF ]SQL> set pause on提示:在发出select 语句并按Enter键后 还要再按Enter键才能显示结果.
§2.5.7 SPACE(列间空格)
可用 set space 来设置各列间的空格数,语法为:SET SPA[CE] {1|n}N为设置输出行列间的空格数,最大为10。
SQL>set space
2建议:在一般情况下,不用设置space参数。
§2.5.8 Termout (启/停屏幕显示)
TERMOUT用于设置在屏幕上显示或不显示所输出的信息。SET TERMOUT { ON | OFF }set termout offset termout on set termout off 常用SPOOL XXX时,即关闭报表在屏幕上的显示(节省时间)set termout on 常用SPOOL off之后,即恢复报表在屏幕上的显示
§2.5.9 ECHO (启/停命令显示)
可以用ECHO命令来显示或不显示所执行的SQL命令。语法如:SET ECHO{OFF|ON}显示执行当中的各命令( 即用start 时)set echo 受到 set termout 的影响set pagesize 100set echo onselect table_name from dict where rownum<20;select * from cat where rownum<30;set echo off --下面只显示结果不显示命令:select table_name from dict where rownum<20;select * from cat where rownum<30;
§2.5.10 TRANSACTION (启动事务)
一个很重要的事务环境设置是TRANSACTION。它包括两个部分的内容:SET TRANSACTION { READ ONLY | USE ROLLBACK SEGMENT segment_name }READ ONLY 是用于保证读的一致性。即其他用户的修改不影响当前查询结果。USE ROLLBACK SEGMENT segment_name 是为当前所处理的事务指定专门的回滚段。这主要是在进行大量的Insert 或Delete 或Update时,需要一个大的回滚段以保证事务正常完成。详细见数据库管理员。
§2.5.11 SHOW ALL(列出所有参数)
可以用SHOW ALL 来显示当前的所有参数情况。它的用法很简单。比如:SQL> show allappinfo为ON并且已设置为"SQL*Plus"arraysize 15autocommit OFFautoprint OFFautorecovery OFFautotrace OFFblockterminator "." (hex 2e)btitle OFF and 为下一条 SELECT 语句的前几个字符cmdsep OFFcolsep " "compatibility version NATIVEconcat "." (hex 2e)copycommit 0COPYTYPECHECK 为 ONdefine "&" (hex 26)describe DEPTH 1 LINENUM OFF INDENT ONmarkup HTML OFF SPOOL OFF ENTMAP ON PREFORMAT OFFecho OFFeditfile "afiedt.buf"embedded OFFescape OFFflagger OFFflush ONheading ONheadsep "|" (hex 7c)instance "local"linesize 80lno 14loboffset 1logsource ""long 80longchunksize 80newpage 1null ""numformat ""numwidth 10pagesize 14PAUSE 为OFFpno 0recsep WRAPrecsepchar " " (hex 20)release 801070000repfooter OFF and 为 NULLrepheader OFF and 为 NULLserveroutput OFFshiftinout INVISIBLEshowmode OFFspool OFFsqlblanklines OFFsqlcase MIXEDsqlcode 0sqlcontinue "> "sqlnumber ONsqlprefix "#" (hex 23)sqlprompt "SQL> "sqlterminator ";" (hex 3b)suffix "sql"tab ONtermout ONtime OFFtiming OFFtrimout ONtrimspool OFFttitle OFF and 为下一条 SELECT 语句的前几个字符underline "-" (hex 2d)USER 为"SYS"verify ONwrap : 行将为已换行SQL>你可以从上面的参数中看到其当前值,也可以修改某些参数的值。

转自:http://www.ckecn.com/a/infos/data1/oracle/2010/0511/288.html

10G中SQLPLUS的PAGESIZE与HEAD的关系

set pagesize 0 , set heading on ,HEAD,SQLPLUS ,ORA 10G

前几天数据提取,发现SPOOL出来的数据是没有HEAD的.
环境: LINUX AIX + ORA 10G ,
脚本如下:
------------------------------------------------
#! /bin/sh
. /home/oracle/.bash_profile
sqlplus -s itrade/aaaaaa <set echo off
set linesize 10000
set long 2000
set term off verify off feedback off
set pagesize 0
spool /tmp/report.txt ;
select count(*) as aa from tab;
spool off ;
exit
EOF
exit 0
---------------------------------------------------

而我们知道sqlplus 中,HEADING 默认是ON的.

一时郁闷之下,人肉进行了调试.
发现是" set pagesize 0 "在搞鬼.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/789833/viewspace-1039954/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/789833/viewspace-1039954/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值