服务器 频道

SQL*PLUS命令的使用大全(下)

  【IT168 服务器学院】36.查询一个用户下的所有的索引

  SQL>select * from user_indexes;

  37. 定义一个用户变量

  方法有两个:

  a. define

  b. COL[UMN] [{column|expr} NEW_V[ALUE] variable [NOPRI[NT]|PRI[NT]]

   OLD_V[ALUE] variable  [NOPRI[NT]|PRI[NT]]

  下面对每种方式给予解释:

  a. Syntax

  DEF[INE] [variable]|[variable = text]

  定义一个用户变量并且可以分配给它一个CHAR值。

  assign the value MANAGER to the variable POS, type:

  SQL> DEFINE POS = MANAGER

  assign the CHAR value 20 to the variable DEPTNO, type:

  SQL> DEFINE DEPTNO = 20

  list the definition of DEPTNO, enter

  SQL> DEFINE DEPTNO

  ―――――――――――――――

  DEFINE DEPTNO = ”20” (CHAR)

  定义了用户变量POS后,就可以在sql*plus中用&POS或&&POS来引用该变量的值,sql*plus不会再提示你给变量输入值。

  b. COL[UMN] [{column|expr} NEW_V[ALUE] variable [NOPRI[NT]|PRI[NT]]

  NEW_V[ALUE] variable

  指定一个变量容纳查询出的列值。

  例:column col_name new_value var_name noprint

  select col_name from table_name where ……..

  将下面查询出的col_name列的值赋给var_name变量.

  一个综合的例子:

  得到一个列值的两次查询之差(此例为10秒之内共提交了多少事务):

  column redo_writes new_value commit_count

  select sum(stat.value) redo_writes

  from v$sesstat stat, v$statname sn

  where stat.statistic# = sn.statistic#

  and sn.name = ''user commits'';

  -- 等待一会儿(此处为10秒);

  execute dbms_lock.sleep(10);

  set veri off

  select sum(stat.value) - &commit_count commits_added

  from v$sesstat stat, v$statname sn

  where stat.statistic# = sn.statistic#

  and sn.name = ''user commits'';
0
相关文章