Chinaunix首页 | 论坛 | 博客
  • 博客访问: 549273
  • 博文数量: 65
  • 博客积分: 1158
  • 博客等级: 少尉
  • 技术积分: 1261
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-18 22:07
文章分类

全部博文(65)

文章存档

2016年(1)

2014年(2)

2013年(9)

2012年(53)

分类: Oracle

2012-12-07 14:31:13

1.设置转义字符

set escape {\|c|on|off}

例如:
SQL> set escape !  --设置转移字符为!
SQL> accept v1 prompt 'enter !&1:'
enter &1:

2.set heading off|on

默认heading的设置是on

SQL> set heading off
SQL> select sal,ename from emp where empno = 7788;
  3000.00 SCOTT

SQL> set heading on
SQL> select sal,ename from emp where empno = 7788;

      SAL ENAME
--------- ----------
  3000.00 SCOTT


3.set feedback on|off|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则没有此反馈。


SQL> set feedback 1
SQL> select sal,ename from emp where empno = 7788;
 
      SAL ENAME
--------- ----------
  3000.00 SCOTT
 
1 row selected
 
SQL> set feedback 2
SQL> select sal,ename from emp where empno = 7788;
 
      SAL ENAME
--------- ----------
  3000.00 SCOTT

--这里因为返回的行数小于2,所以不会显示1 row selected

4.set define on|off|character

在SQL*Plus中默认的"&"表示替代变量,也就是说,只要在命令中出现该符号,SQL*Plus就会要你输入替代值。这就意味着你无法将一个含有该符号的字符串输入数据库或赋给变量,如字符串“SQL&Plus”系统会理解为以“SQL”打头的字符串,它会提示你输入替代变量Plus的值,如果你输入ABC,则最终字符串转化为“SQLABC”。 
  set define off 则关闭该功能,“&”将作为普通字符,如上例,最终字符就为“SQL&Plus” 

set define off关闭替代变量功能 
set define on 开启替代变量功能 
set define $   (不是能是字母数字和空格)将替代默认变量标志符&为“$”原来的&标志将以普通字符的形式插入,而$后面的字符这会是变量,将会提示你输入。

SQL> select * from emp where empno = &empno;    

EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
7788 SCOTT      ANALYST    7566 1987/4/19     3000.00               20

--上面执行过程中会提示输入empno的值

SQL> set define off;    --关闭了替代变量的功能
SQL> select * from emp where empno = &empno;

select * from emp where empno = &empno

ORA-01008: not all variables bound

SQL> set define on
SQL> select * from emp where empno = &empno;

EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
7788 SCOTT      ANALYST    7566 1987/4/19     3000.00               20

--设置替代变量的标识符为$
SQL> set define $
SQL> select * from emp where empno = $empno;


EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
7788 SCOTT      ANALYST    7566 1987/4/19     3000.00               20

5.undefine
这个变量用于清除替代变量的定义
SQL> undefine password
SQL> conn scott/&password@orac
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0
Connected as scott@ORAC

会提示输入password,输入正确的密码就是了

6.variable
在sqlplus中使用绑定变量,格式如下
variable variable_name type
使用绑定变量的时候必须在绑定变量的前面加上: 可以直接使用execute给绑定变量赋值
例如:

SQL> variable empno number
SQL> execute :empno := 7788 

PL/SQL procedure successfully completed
empno
---------
7788

SQL> select ename,sal from emp where empno = :empno;

ENAME            SAL
---------- ---------
SCOTT        3000.00
empno
---------
7788



阅读(5124) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~