SQLPLUS

一、替换变量

 

sqlplus中执行命令时,可以使用替换变量,使语句执行前,user可以输出不同的数据库,来执行不同的操作:

替换变量的书写格式为 &+字符串   或者   &&+字符串  

例如:&1    &a   &&1  &&a   &&b  …… 等等   【不要用特殊字符代替字符串】

&+字符串的替换变量仅仅在本次会还中有效,&&+字符串的替换变量将持续有效,

直到undefine取消为止。

下面用操作来演示一下:

下面这个表示刚建的

SQL> select * from t1;

 

A1                 A2

---------- ----------

aaa                 2

bbb                 3

使用 一个&的 替换变量:

SQL> select * from &1;

Enter value for 1: t1

old   1: select * from &1

new   1: select * from t1

 

A1                 A2

---------- ----------

aaa                 2

bbb                 3

下次执行语句时还需要再次输入替换变量的值:

 

SQL> select * from &1;

Enter value for 1: t1

old   1: select * from &1

new   1: select * from t1

 

A1                 A2

---------- ----------

aaa                 2

bbb                 3

使用两个&&的替换变量,第一次需要输入替换变量的 值,第二次就不需要输入了

SQL> select * from &&1;

Enter value for 1: t1     ---第一次需要输入替换变量的值

old   1: select * from &&1

new   1: select * from t1

 

A1                 A2

---------- ----------

aaa                 2

bbb                 3

 

SQL> select * from &&1; 

old   1: select * from &&1   --  第二次执行已经不需要输入替换变量的值了。

new   1: select * from t1

 

A1                 A2

---------- ----------

aaa                 2

bbb                 3

 

一直到主动使用undefine 取消位置

SQL> undefine 1;     --取消替换变量,我的替换变量是1

SQL> select * from &&1;

Enter value for 1: t1   --这里又要重新输入&&1的值了

old   1: select * from &&1

new   1: select * from t1

 

A1                 A2

---------- ----------

aaa                 2

bbb                 3

 

一条语句中,出了第一个单词外,其他部分都可以用替换变量来代替;如果如下的new 这条语句语法无误,那么最后这条语句就能顺利执行。

 

old   1: select * from &&1    ---是你的原始sql语句

new   1: select * from t1       --是输入所有替换变量后,将要执行的语句

 

在执行其他命令时也可以用替换变量,但是没有如上的old  new示信息

SQL> conn &q/&q

Enter value for q: xsh

Enter value for q: xsh

Connected.

 

 

二、SET命令

1、set  verify  on|off

   上例中,使用替换变量查询时,语句执行的时候,每次都会显示如下信息:

Old  …………    --你输入的原始语句

Now …………    --使用替换变量后的语句

如果不想看到该信息,可以手动关掉【默认是打开的】

SQL> set verify off   --关掉显示信息

SQL> select * from &q where  a2=2;

Enter value for q: t1

                                    ---这里已经old 和 new 的信息了。

A1                 A2

---------- ----------

aaa                 2

 

2、返回信息 feedback

SQL> set feedback2;   ---feedback 设置为2

SQL> select * from t1;

 

A1                 A2

---------- ----------

ccc                 5

aaa                 2

bbb                 3

 

3 rows selected.     ----实际返回结果大于2,会有这个提示

 

SQL> select * from t1 where a2=2;

 

A1                 A2

---------- ----------

aaa                 2    --只返回了一行记录,所以没有类似 “3 rows selected”的提示

 

如果返回的行数与feedback参数的值相等也不会有提示信息。

 

另外,如果处理大量数据,如无必要,最好将feedback关掉,因为这个提示信息也会耗用一定的资源:set feedback off

 

3、是否显示脚本的执行结果 termout 

   默认是打开的

SQL> show termout 

termout ON

新建如下文件:/home/oracle/abc.sql

文件内容:select * from  t1;

执行结果如下:

SQL> @/home/oracle/abc.sql;

 

A1                 A2

---------- ----------

ccc                 5

aaa                 2

bbb                 3    

 

SQL>     ----上面返回的是脚本执行的结果信息

 

现在讲termout关掉,再执行一次

SQL> set termout off

SQL> @/home/oracle/abc.sql;

SQL>     ---这次就不返回信息了

 

4、是否显示标头 heading

默认是开启的 

SQL> show heading;

heading ON

 

开启时的效果:

SQL> select * from t1;

 

A1                 A2     -------这里就是所说的标头

---------- ----------

ccc                 5

aaa                 2

bbb                 3

SQL> 

关闭后:

SQL> set heading off

SQL> select * from t1;

                            --这里不显示标头了,

ccc                 5

aaa                 2

bbb                 3

SQL> 

 

 

三、格式控制  col

 

Col全名是column,用法如下:[]内的字符可以不写

Col  a  hea[ding]  b    --列名显示为b  与别名的作用相同

Col  a  for[mat]   a10   --A10格式来显示a列的值

Col  a   cle[ar]         --清除所有设置在a列上的格式

Col  a   noprint         --结果返回后不显示a

Col   a   print          --结果返回后重新显示a

Col   a  null  abc       --a列中所有的null值显示为abc

 

实验上面的例子很简单,这里就不再将实验结果一一贴出来了。

 

四、不显示某列重复的值 break on

 

SQL> select * from t1 ;

 

A1                 A2

---------- ----------

aaa                 6

bbb                 7

ccc                 5

aaa                 2

bbb                 3

 

格式化后

SQL> break on a1;

SQL> select * from t1 order by a1;     --这里要加order by 才能看到效果

 

A1                 A2

---------- ----------

aaa                6

                    2

bbb               7

                    3

ccc                5

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值