码迷,mamicode.com
首页 > 其他好文 > 详细

替代变量

时间:2017-04-28 16:03:15      阅读:292      评论:0      收藏:0      [点我收藏+]

标签:value   pen   1.2   man   脚本   建立   resid   list   get   

1.&+标识符  替代变量 类似于其它语言进行变量赋值

scott@TEST>select ename,&aa from emp;
Enter value for aa: job
old   1: select ename,&aa from emp
new   1: select ename,job from emp

ENAME                JOB
-------------------- ------------------
SMITH                CLERK
ALLEN                SALESMAN
WARD                 SALESMAN
JONES                MANAGER
MARTIN               SALESMAN
BLAKE                MANAGER
CLARK                MANAGER
SCOTT                ANALYST
KING                 PRESIDENT
TURNER               SALESMAN
ADAMS                CLERK
JAMES                CLERK
FORD                 ANALYST
MILLER               CLERK

14 rows selected.

2.define 查看当前的环境变量  

  define aa=1 定义一个环境变量

  undefine aa 取消环境变量的定义

  && aa  定义一个环境变量

  该定义只在当前会话有效

  set verify off 关闭 新老变量的数值提示

scott@TEST>define
DEFINE _DATE           = "28-APR-17" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "sales" (CHAR)
DEFINE _USER           = "SCOTT" (CHAR)
DEFINE _PRIVILEGE      = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1102000400" (CHAR)
DEFINE _EDITOR         = "vim" (CHAR)
DEFINE _O_VERSION      = "Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options" (CHAR)
DEFINE _O_RELEASE      = "1102000400" (CHAR)
DEFINE GNAME           = "scott@TEST" (CHAR)
scott@TEST>define aa=1;
scott@TEST>define
DEFINE _DATE           = "28-APR-17" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "sales" (CHAR)
DEFINE _USER           = "SCOTT" (CHAR)
DEFINE _PRIVILEGE      = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1102000400" (CHAR)
DEFINE _EDITOR         = "vim" (CHAR)
DEFINE _O_VERSION      = "Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options" (CHAR)
DEFINE _O_RELEASE      = "1102000400" (CHAR)
DEFINE GNAME           = "scott@TEST" (CHAR)
DEFINE AA              = "1" (CHAR)
scott@TEST>undefine aa
scott@TEST>define
DEFINE _DATE           = "28-APR-17" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "sales" (CHAR)
DEFINE _USER           = "SCOTT" (CHAR)
DEFINE _PRIVILEGE      = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1102000400" (CHAR)
DEFINE _EDITOR         = "vim" (CHAR)
DEFINE _O_VERSION      = "Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options" (CHAR)
DEFINE _O_RELEASE      = "1102000400" (CHAR)
DEFINE GNAME           = "scott@TEST" (CHAR)
scott@TEST>select &&aa from dual;
Enter value for aa: 1
old   1: select &&aa from dual
new   1: select 1 from dual

         1
----------
         1

scott@TEST>define
DEFINE _DATE           = "28-APR-17" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "sales" (CHAR)
DEFINE _USER           = "SCOTT" (CHAR)
DEFINE _PRIVILEGE      = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1102000400" (CHAR)
DEFINE _EDITOR         = "vim" (CHAR)
DEFINE _O_VERSION      = "Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options" (CHAR)
DEFINE _O_RELEASE      = "1102000400" (CHAR)
DEFINE GNAME           = "scott@TEST" (CHAR)
DEFINE AA              = "1" (CHAR)

 3.保存命令成脚本

  1.list 查看最后一条命令(l)

  2.save a.sql 保存命令到a.sql 脚本文件中去

  3.get a.sql 查看a.sql 脚本

  4.@a.sql 执行脚本

  5.set echo on 打开执行脚本时,显示脚本内容

 

scott@TEST>l
  1  select sum(decode(to_char(hiredate,yyyy),1980,1,0)) "1980",
  2  sum(decode(to_char(hiredate,yyyy),1981,1,0)) "1981",
  3  sum(decode(to_char(hiredate,yyyy),1982,1,0)) "1982",
  4  sum(decode(to_char(hiredate,yyyy),1987,1,0)) "1987"
  5* from emp
scott@TEST>save 1.sql;
Created file 1.sql
scott@TEST>get 1.sql
  1  select sum(decode(to_char(hiredate,yyyy),1980,1,0)) "1980",
  2  sum(decode(to_char(hiredate,yyyy),1981,1,0)) "1981",
  3  sum(decode(to_char(hiredate,yyyy),1982,1,0)) "1982",
  4  sum(decode(to_char(hiredate,yyyy),1987,1,0)) "1987"
  5* from emp
scott@TEST>@ 1.sql

      1980       1981       1982       1987
---------- ---------- ---------- ----------
         1         10          1          2
scott@TEST>set echo on
scott@TEST>@ 1.sql
scott@TEST>select sum(decode(to_char(hiredate,yyyy),1980,1,0)) "1980",
  2  sum(decode(to_char(hiredate,yyyy),1981,1,0)) "1981",
  3  sum(decode(to_char(hiredate,yyyy),1982,1,0)) "1982",
  4  sum(decode(to_char(hiredate,yyyy),1987,1,0)) "1987"
  5  from emp
  6  /

      1980       1981       1982       1987
---------- ---------- ---------- ----------
         1         10          1          2

 

4.set命令变量

  feedback  在select一个表的时候,在最下方显示共有多少行,默认在函数大于6的时候才显示。 

  

 

 

 

一般使用SQL PLUS导出数据时一般使用以下参数就可以了。

set echo off; -- 不显示脚本中的每个sql命令(缺省为on)
set feedback off; -- 禁止回显sql命令处理的记录条数(缺省为on)
set heading off; -- 禁止输出标题(缺省为on)
set pagesize 0; -- 禁止分页输出
set linesize 1000; -- 设置每行的字符输出个数为1000,放置换行(缺省为80 )
set numwidth 16; -- 设置number类型字段长度为16(缺省为10)
set termout off; -- 禁止显示脚本中命令的执行结果(缺省为on)
set trimout on; -- 去除标准输出每行的行尾空格(缺省为off)
set trimspool on; -- 去除spool输出结果中每行的结尾空格(缺省为off) 

sqlplus维护系统变量 也称set变量 利用它可为sqlplus交互建立一个特殊的环境 如:设
 置number数据的显示宽度 设置每页的行数 设置列的宽度等。可用set命令改变这些系统变
 量 也可用show命令列出它们.

 

 

5.host命令 在oracle 下直接调用系统命令

6.假脱机

  1)spool 1.txt 开启假脱机 保存到1.txt文件中去

  2)spool off 关闭假脱机状态

  3)spool 1.txt append  继续追加到1.txt 文件中去

替代变量

标签:value   pen   1.2   man   脚本   建立   resid   list   get   

原文地址:http://www.cnblogs.com/sangmu/p/6780929.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!