ITPub博客

首页 > Linux操作系统 > Linux操作系统 > sqlplus的变量设置

sqlplus的变量设置

原创 Linux操作系统 作者:oralau 时间:2009-04-27 17:59:56 0 删除 编辑

一、自定义变量

使用DEFINE命令定义变量
定义一个变量
sql> define deptname = sales
   清空一个变量的定义
sql> undefine deptname
    使用自己的定义的变量
sql> select *
     from   dept
     where  dname = upper('&DEPTNAME');
注意:一个变量将保持在被定义的状态,直到:
使用 UNDEFINE 命令将它清除
离开 SQL*Plus
可以用DEFINE 命令验证所做的改变.
如果要定义在每一次会话中都要用到的变量, 改变login.sql 文件,这样在每一次启动时,变量就创建了.

二、输入变量


&变量替换
SELECT empno, ename, sal, deptno
      FROM emp
      WHERE empno = &employee_num;
Enter value for employee_num: 7369

    EMPNO ENAME            SAL    DEPTNO
--------- ---------- --------- ---------
     7369 SMITH            800        20

显示用某个具体值替换变量名之前和之后的命令文本

SQL> SELECT empno, ename, sal, deptno
     FROM emp
     WHERE empno = &employee_num;
Enter value for employee_num: 7369
old   3: WHERE empno = &employee_num
new   3: WHERE empno = 7369

使用单引号标志替换变量中的日期和字串值
SQL> SELECT ename, deptno, sal*12
     FROM   emp
     WHERE  job='&job_title';
Enter value for job_title: ANALYST

ENAME         DEPTNO    SAL*12
---------- --------- ---------
SCOTT             20     36000
FORD              20     36000


运行时指定列名、表达式、文本


SQL> SELECT  empno, ename, job, &column_name
     FROM  emp
     WHERE  &condition
     ORDER BY  &order_column;
Enter value for column_name: sal
Enter value for condition: sal>=3000
Enter value for order_column: ename

    EMPNO ENAME      JOB             SAL
--------- ---------- --------- ---------
     7902 FORD       ANALYST        3000
     7839 KING       PRESIDENT      5000
     7788 SCOTT      ANALYST        3000

使用带有两个&的变量可以使得该变量可以重复使用,而不必在每次使用时提醒用户输入

SQL> SELECT  empno, ename, job, &&column_name
     FROM  emp
     ORDER BY  &column_name;
Enter value for column_name: deptno
    EMPNO ENAME      JOB          DEPTNO
--------- ---------- --------- ---------
     7839 KING       PRESIDENT        10
     7782 CLARK      MANAGER          10
     7934 MILLER     CLERK            10

当接收用户输入时,创建可定制的用户提示
ACCEPT  dept PROMPT 'Provide the department name: '
SELECT  *
FROM    dept
WHERE   dname = UPPER('&dept')
/
Provide the department name: Sales

   DEPTNO DNAME          LOC
--------- -------------- -------------
       30 SALES          CHICAGO


 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20844861/viewspace-591984/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-02-17

  • 博文量
    38
  • 访问量
    36514