oracle set 变量

一般使用SQL PLUS导出数据时一般使用以下参数就可以了。

set echo off; -- 不显示脚本中的每个sql命令(缺省为on)
set feedback off; -- 禁止回显sql命令处理的记录条数(缺省为on)
set heading off; -- 禁止输出标题(缺省为on)
set pagesize 0; -- 禁止分页输出
set linesize 1000; -- 设置每行的字符输出个数为1000,放置换行(缺省为80 )
set numwidth 16; -- 设置number类型字段长度为16(缺省为10)
set termout off; -- 禁止显示脚本中命令的执行结果(缺省为on)
set trimout on; -- 去除标准输出每行的行尾空格(缺省为off)
set trimspool on; -- 去除spool输出结果中每行的结尾空格(缺省为off) 

sqlplus维护系统变量 也称set变量 利用它可为sqlplus交互建立一个特殊的环境 如:设
 置number数据的显示宽度 设置每页的行数 设置列的宽度等。可用set命令改变这些系统变
 量 也可用show命令列出它们.

 

 

 

以下是全部的用法:

 

 使用set命令的语法如下:
   set 系统变量  值

 其中系统变量及其可选值如下:
   arraysize          {20(默认值)|n}
   autocommit         {off(默认值)|on|immediate} 
   blockterminator    {.(默认值)|c}
   cmdsep             { |c|off(默认值)|on}
   compatibility      {v5|v6|v7|native(默认值)}
   concat             {.(默认值)|c|off|on(默认值)}
   copycommit         {0(默认值)|n}
   crt crt              
   define             {& |c|off|on(默认值)}
   echo                 {off|on}
   embedded             {off(默认值)|on}
   escape             {/(默认值)|c|off(默认值)|on}
   feedback           {6(默认值)|n|off|on}
   flush              {off|on(默认值)}
   heading            {off|on(默认值)}
   headsep            {|(默认值)|c|off|on(默认值)}
   linesize           {80(默认值)|n}
   long                 {80(默认值)|n}
   longchunksize      {80(默认值)|n}
   maxdata            n
   newpage            {1(默认值)|n}
   null text
   numformat          格式
   numwidth           {10(默认值)|n}
   pagesize           {14(默认值)|n}
   pause              {off(默认值)|on|text}
   recsep               {wrapped(默认值)|each|off}
   recsepchar           { |c}
   scan                 {off|on(默认值)} 
   serveroutput       {off|on} size n
   showmode           {off(默认值)|on}
   space              {1(默认值)|n}
   sqlcase            {mixed(默认值)|lower|upper}
   sqlcontinue        {>  (默认值)|文本}
   sqlnumber          {off|on(默认值)}
   sqlperfix          {#(默认值)|c}
   sqlprompt          {sql>  (默认值)|文本}
   sqlterminator      { (默认值)|c|off|on(默认值)}
   suffix             {sql(默认值)|文本}
   tab                  {off|on(默认值)}
   termout            {off|on(默认值)}
   time               {off(默认值)|on}
   timing             {off(默认值)|on}
   trimout            {off|on(默认值)}
   underline          {-(默认值)|c|off|on(默认值)}
   verify             {off|on(默认值)}
   wrap               {off|on(默认值)}

 系统变量说明:
   arraysize {20(默认值)|n} 置一批的行数 是sqlplus一次从数据库获取的行数 有效值为1至5000. 大的值可提高查询和子查询的有效性 可获取许多行 但也需要更多的内存.当超过1000时 其效果不大.

   autocommit {off(默认值)|on|immediate} 控制oracle对数据库的修改的提交. 置on时 在oracle执行每个sql命令或pl/sql块后对数据库提交修改 置off时则制止自动提交 需要手工地提交修改 例如用sql的commit命令. immediate功能同on.

   blockterminator {.(默认值)|c} 置非字母数字字符 用于结束pl/sql块.要执行块时 必须发出run命令或/命令.

   cmdsep { |c|off(默认值)|on} 置非字母数字字符 用于分隔在一行中输入的多个sql/plus命令.on或off控制在一行中是否能输入多个命令. on时将自动地将命令分隔符设为分号(.其中c表示所置字符.

   compatibility {v5|v6|v7|native(默认值)} 指定当前所链接的oracle版本.如果当前oracle的版本为5 则置compatibility为v5  为版本6时置成v6  为版本7时置成v7. 如果希望由数据库决定该设置 在置成native.

   concat {.(默认值)|c|off|on(默认值)}设置结束一替换变量引用的字符.在中止替换变量引用字符之后可跟所有字符 作为体会组成部分 否则sqlplus将解释为替换变量名的一部分.当concat开关为on时 sqlplus可重置concat的值为点(.).

   copycommit {0(默认值)|n} 控制copy命令提交对数据库修改的批数.每次拷贝n批后 将提交到目标数据库.有效值为0到5000. 可用变量arraysize设置一批的大小.如果置copycommit为0 则仅在copy操作结束时执行一次提交.

   crt crt  改变sqlplus runform命令使用的缺省crt文件.如果置crt不包含什么 则crt仅包含' ' ' ' .如果在一个form的系统调用期间 要使用new.crt(缺省crt是old.crt) 可按下列形式调用form:
     sql>  runform -c new form名
     或者
     sql>  set crt new
     sql>  runform form名
 第二中方法存储crt选择 以致在下次运行runform命令(是在同一次sqlplus交互中)时 不需要指定.

   define {& |c|off|on(默认值)} 设置在替换变量时所使用的字符.on或off控制sqlplus是否扫描替换变量的命令及用他们的值代替. define的on或off的设置控制scan变量的设置.

   echo {off|on} 控制start命令是否列出命令文件中的每一命令.为on时 列出命令 为off时 制止列清单.

   embedded {off(默认值)|on} 控制每一报表在一页中开始的地方. 为off时 迫使每一报表是在新页的顶部开始 为on时 运行一报表在一页的任何位置开始.
   
   escape {/(默认值)|c|off(默认值)|on} 定义作为escape字符的字符.为off时 使escape字符不起作用.为on时 使escape字符起作用.

   feedback {6(默认值)|n|off|on} 显示由查询返回的记录数.on和off置显示为开或关.置feedback为on时 等价于置n为1. 如果置feedback为0 等价于将它置成off.

   flush {off|on(默认值)} 控制输出送至用户的显示设备.为off时 运行操作系统做缓冲区输出 为on时 不允许缓冲. 仅当非交互方式运行命令文件时使用off 这样可减少程序i/o总是 从而改进性能.

   heading {off|on(默认值)} 控制报表中列标题的打印.为on时 在报表中打印列标题 为off时禁止打印列标题.

   headsep {|(默认值)|c|off|on(默认值)} 定义标题分隔字符.可在column命令中使用标题分隔符 将列标题分成多行.on和off将标题分隔置成开或关.当标题分隔为关(off)时 sqlplus打印标题分隔符像任何字符一样.

   linesize {80(默认值)|n} 置sqlplus在一行中显示的字符总数 它还控制在ttitle和btitle中对准中心的文本和右对齐文本. 可定义linesize为1至最大值 其最大值依赖于操作系统.

   long {80(默认值)|n} 为显示和拷贝long类型值的最大宽度的设置. 对于oracle7  n的最大值为2g字节 对于版本6 最大值为32767.

   longchunksize {80(默认值)|n} 为sqlplus检索long类型值的增量大小.由于内存的限制 可按增量检索 该变量仅应用于oracle7.
   
   maxdata n  置sqlplus可处理的最大行宽字符数 其缺省值和最大值在不同操作系统中是可变的.

   newpage {1(默认值)|n} 置每一页的头和顶部标题之间要打印的空行数.如果为0  在页之间送一换号符 并在许多终端上清屏.
   
   null text 设置表示空值(null)的文本 如果null没有文本 则显示空格(缺省时). 使用column命令中的null子句可控制null变量对该列的设置.

   numformat 格式  设置显示数值的缺省格式 该格式是数值格式.
   
   numwidth {10(默认值)|n} 对显示数值设置缺省宽度.
   
   pagesize {14(默认值)|n} 置从顶部标题至页结束之间的行数.在11英寸长的纸上打印报表 其值为54 上下各留一英寸(newpage值为6).

   pause {off(默认值)|on|text} 在显示报表时 控制终端滚动.在每一暂停时 必须按return键.on将引起sqlplus在每一报表输出页开始时暂停.所指定的文本是每一次sqlplus暂停时显示的文本.如果要键入多个词 必须用单引号将文本括起来.
   
   recsep {wrapped(默认值)|each|off}
   recsepchar { |c}  指定显示或打印记录分行符的条件.一个记录分行符 是由recsepchar指定的字符组成的单行.空格为recsepchar的默认字符.
   recsep告诉sqlplus在哪儿做记录分隔.例如将recsep置成wrapped 在每一缠绕行之后 打印记录分行符.如果将recsep置成each sqlplus在每一行后打印一记录分行符.如果将recsep置成off  sqlplus不打印分行符.
   
   scan {off|on(默认值)} 控制对存在的替换变量和值的扫描.off禁止替换变量和值的处理  on则允许正常处理.
   
   serveroutput {off|on} size n 控制在sqlplus中的存储过程是否显示输出.off时为禁止  on时则显示输出. size设置缓冲输出的字节数 缺省值为2000  n不能小于2000或大于一百万.
   
   showmode {off(默认值)|on} 控制sqlplus在执行set命令时是否列出其新老值old或new的设置.

   space {1(默认值)|n}  设置输出列之间空格的数目 其最大值为10.
   
   sqlcase {mixed(默认值)|lower|upper}  先于执行之前 将sql命令和pl/sql块的大小写进行转换. sqlplus将转换命令中的全部文本 包括带引号的直接量和标示符.sqlcase不改变sql缓冲区本身.
   
   sqlcontinue {>  (默认值)|文本}  在一附加行上继续一sqlplus命令时 sqlplus以该设置的字符序列进行提示.
   
   sqlnumber {off|on(默认值)}  为sql命令和pl/sql块的第二行和后继行设置提示.为on时 提示行号 为off时 提示设置为sqlprompt的值.
   
   sqlperfix  {#(默认值)|c}  设置sqlplus前缀字符.在键入一sql命令或pl/sql块时 可在单独行上键入一sqlplus命令 由sqlplus的前缀字符做前缀. sqlplus直接执行该命令 不影响sql命令或pl/sql块.前缀字符必须是非字母数字字符.
   
   sqlprompt {sql>  (默认值)|文本}  设置sqlplus的命令提示符.
   
   sqlterminator { (默认值)|c|off|on(默认值)}  设置用于结束和执行sql命令的字符. off意味着sqlplus不识别命令终止符 用键入空行来结束sql命令. on重设置终止符为默认的分号(.
   
   suffix {sql(默认值)|文本}  设置缺省文件的后缀 sqlplus在命令中使用 来引用命令文件. suffix不控制输出(spool)文件的扩展名.
   
   tab {off|on(默认值)}  决定sqlplus在终端输出中如何格式化空白空间. 为off时 在输出中使用空格格式化空白空间 为on时 用tab字符. tab的缺省值依赖于系统 用show tab命令可查看该缺省值.
   
   termout {off|on(默认值)}  控制由文件执行命令所产生的输出的显示. off禁止显示 以致从一个命令文件假脱机输出 在屏幕上看不到输出. on时显示输出. termout off 不影响交互地进行命令的输出.
   
   time {off(默认值)|on}  控制当前日期的显示. on时 在每条命令提示前显示当前时间  off时禁止时间的显示.
   
   timing {off(默认值)|on}  控制时间统计的显示. on时 显示每一个运行的sql命令或pl/sql块的时间统计  off时 禁止每一个命令的时间统计.
   
   trimout {off|on(默认值)}  决定sqlplus在每一显示行的末端是否允许带空格. on时将每行尾部的空格去了 特别当从慢速的通信设备存取sqlplus时可改进性能  off时允许sqlplus显示尾部的空格.trimout on 不影响假脱机输出. 设置tab on时 sqlplus忽略trimout on.
   
   underline {-(默认值)|c|off|on(默认值)}  设置用在sqlplus报表中下划线列标题的字符. on或off将下划线置成开或关.
   
   verify {off|on(默认值)}  控制sqlplus用值替换前、后是否列出命令的文本. on时显示文本 off时禁止列清单.

   wrap {off|on(默认值)}  控制sqlplus是否截断数据项的显示. off时截断数据项 on时允许数据项缠绕到下一行. 在column命令中使用wrapped和truncated子句可控制对指定列的wrap的设置.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle中的SET命令用于设置SQL*Plus环境变量和系统变量。以下是常用的SET命令及其详细解释: 1. SET AUTOCOMMIT ON/OFF:用于设置是否自动提交事务。当AUTOCOMMIT为ON时,每个SQL语句都会自动提交,而当AUTOCOMMIT为OFF时,需要手动提交。 2. SET DEFINE ON/OFF:用于设置是否开启变量替换。当DEFINE为ON时,SQL*Plus将会把变量替换为其值,而当DEFINE为OFF时,不会替换变量。 3. SET ECHO ON/OFF:用于设置是否显示SQL语句。当ECHO为ON时,SQL语句会显示在屏幕上,而当ECHO为OFF时,则不会显示。 4. SET FEEDBACK ON/OFF:用于设置是否显示操作结果。当FEEDBACK为ON时,SQL语句的操作结果会显示在屏幕上,而当FEEDBACK为OFF时,则不会显示。 5. SET HEADING ON/OFF:用于设置是否显示列标题。当HEADING为ON时,SQL语句的列标题会显示在屏幕上,而当HEADING为OFF时,则不会显示。 6. SET LINESIZE n:用于设置每行显示的字符数。n为一个整数,表示每行最多显示的字符数。 7. SET PAGESIZE n:用于设置每页显示的行数。n为一个整数,表示每页最多显示的行数。 8. SET SERVEROUTPUT ON/OFF:用于设置是否显示PL/SQL块的输出结果。当SERVEROUTPUT为ON时,PL/SQL块的输出结果会显示在屏幕上,而当SERVEROUTPUT为OFF时,则不会显示。 9. SET SQLPROMPT 'string':用于设置SQL*Plus的提示符。string为一个字符串,表示提示符的内容。 10. SET TERMOUT ON/OFF:用于设置是否输出结果到屏幕上。当TERMOUT为ON时,SQL语句的结果会输出到屏幕上,而当TERMOUT为OFF时,则不会输出结果。 以上是Oracle中常用的SET命令及其详细解释。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值