2014-06-24 59 views
2

是否可以在一个命令中设置多个系统变量?Oracle设置了多个系统变量

例如,在一行中设置下面的系统变量?

SET COLSEP ' ' 
SET ECHO OFF 
SET FEEDBACK OFF 
SET HEADING OFF 
SET LINESIZE 10000 
SET NEWPAGE NONE 
SET TRIMSPOOL ON 

检查http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12040.htm#i2699283,但没有看到这样做的例子。

+0

不,你不能那样做。 – OldProgrammer

+0

显然你可以。 – user3636943

+0

今天学到了新东西! – OldProgrammer

回答

4

Is it possible to set multiple system variables in a single command?

是的,你可以。只需使用空格作为前一个变量的新值与下一个变量名称之间的分隔符来指定变量名称/值对。这里有一个例子:

/* display variables' current values */ 
SQL> show colsep echo feedback heading linesize 

colsep " " 
echo OFF 
FEEDBACK ON for 6 or more rows 
heading ON 
linesize 80 

/* Assign new values */ 
SQL> set colsep "|" echo on echo on feedback off heading off linesize 1000; 

/* Make sure changes are in effect */ 
SQL> show colsep echo feedback heading linesize 

colsep "|" 
echo ON 
feedback OFF 
heading OFF 
linesize 1000 


SQL> spool off; 

注:当系统变量的数量是多了几个,这种做法将大大减少可读性。所以最好将每个变量/值对分配给它自己的SET命令。