在某些特定的情况下我们想在做某种实验,需要执行一段sql语句,但是不想在屏幕上打印出sql语句的结果(太长了)
可以采用如下方式。
1 把想要执行的语句写到一个sql脚本中,例如:
[oracle@irac01 scripts]$ more sqlt.sql
set term off
alter session set sql_trace=true;
select * from v$latch;
alter session set sql_trace=false;
2 注意到了吧,脚本的开头进行了设置
set term off
关于set命令的解释如下:
column
修改列宽度
column c1 format a20 –将列c1(字符型)显示最大宽度调整为20个字符
column c1 format 9999999 –将列c1(num型)显示最大宽度调整为7个字符
修改列标题
column c1 heading c2 –将c1的列名输出为c2
set colsep’ ‘ –行的标题列的分隔符
set linesize(line) –设置sqlplus输出的最大行宽
set pagesize –设置页面的最大行数 缺省为 24,为了避免分页,可设定为 0
set serveroutput on|off
set echo on –显示文件中的每条命令及其执行结果,缺省为 on
set echo off –不显示文件中的命令,只显示其执行结果
set term on –查询结果既显示于假脱机文件中(spool指定输出的文件),又在SQLPLUS中显示
set term off –查询结果仅仅显示于假脱机文件中(spool指定输出的文件)
set heading off –让结果行的标题不显示,缺省为 on
set heading on –让结果行的标题显示
set trimout on –去除标准输出每行的拖尾空格,缺省为 off
set trimspool on –去除重定向( spool)输出每行的拖尾空格,缺省为 off
set timing off –显示每条sql命令的耗时,缺省为off
set verify off –是否显示替代变量被替代前后的语句。
exit –退出
set feedback
有三种方式:缺省为 on
set feedback on;set feedback off;set feedback n
默认的当一条sql发出的时候,oracle会给一个反馈,比如说创建表的时候,如果成功,命令行会返回类似:Table created的反馈,又比如执行一个pl/sql成功的时候,命令行会返回:PL/SQL procedure successfully completed 。当载脚本中运行很多语句的时候,一般将feedback设为off。
set feedback n:当一条sql语句返回n或者大于n行记录的时候,就会有feedback,比如:set feedback 5,当返回记录等于或多于5行的时候会有类似8 rows selected.的反馈.如果返回行少于5则没有此反馈。
set define off
在SQL*Plus中默认的”&”表示替代变量,也就是说,只要在命令中出现该符号,SQL*Plus就会要你输入替代值。这就意味着你无法将一个含有该符号的字符串输入数据库或赋给变量,如字符串“SQL&Plus”系统会理解为以“SQL”打头的字符串,它会提示你输入替代变量Plus的值,如果你输入ABC,则最终字符串转化为“SQLABC”。
set define off 则关闭该功能,“&”将作为普通字符,如上例,最终字符就为“SQL&Plus”
set define off –关闭替代变量功能
set define on –开启替代变量功能
set define $ (不是能是字母数字和空格)将替代默认变量标志符&为“$”,即原来的&标志符将以普通字符的形式插入,而$后面的字符为变量,将会提示你输入。
SPOOL命令
spool filename –将缓冲区的内容写到指定的文件filename
spool off –终止写命令
MARKUP
MARKUP是sql*Plus的一个环境设置,它控制输出的标记语言类型。在默认情况下,MARKUP将HTML定义为标记语言,但是标签自身是关闭的。HTML标签集是预定义;你必须通过下面语句将标签打开:
SET MARKUP HTML ON