转载自 Oracle中的替换变量,&变量名,&&变量名

替换变量(仅用于SQL *Plus或者用于原理和SQL *Plus相同的开发工具):
临时存储值
利用它可以达到创建通用脚本的目的
利用它可以达到和用户交互,故在SQL *Plus中又称交互式命令

替换变量的格式式在变量名称前加一个&,以便在运行SQL命令时提示用户输入替换数据,然后按输入数据运行SQL命令
语法:
(1)& :“&变量名”eg:&name;
生命周期:单次引用中,不需要声明,如果替换字符或日期类型,最好用单引号扩起
使用范围:where、order by、列表达式、表名、整个SELECT 语句中

(2)&& :“&&变量名”eg:&&name;
生命周期:整个会话(session连接),不需要声明

(3)define :“define 变量名=变量值”eg:DEFINE a = clark;
生命周期:整个会话,预先声明,使用时用&引用声明的变量
define variable=用户创建的CHAR类型的值:define 变量名=值;
define 变量名:查看变量命令。 
undefine 变量名:清除变量
define:查看在当前会话中所有的替换变量和它们的值

(4)accept

生命周期:整个会话
预先声明,可以客户化提示信息,使用时用&引用声明的变量。
定义:
accept 变量名name number/char/date prompt '提示信息内容'即:ACC[EPT] variable [NUM[BER] | CHAR | DATE] [FOR[MAT] format] [DEF[AULT] default] [PROMPT text | NOPR[OMPT]] [HIDE]
解释:
PROMPT命令:用于输出提示用户的信息,以便使用户了解脚本文件的功能和运行情况
PAUSE命令:用于暂停脚本文件的运行
HIDE选项:用于隐藏用户的输入,使别人不可见,安全
这条命令的意思是:当plsql程序段执行到变量name的时候,此时需要用户的交互才能继续执行下去,plsql程序段会显示“提示信息内容”让用户输入相关信息(如果指定hide选项,那么在接下去用户输入的东西将被用星号显示出来增加安全,有点像输入密码),用户输入的内容被接收到并且把它付给name,关于在“提示信息内容”下用户输入的内容的类型,plsql程序段开发人员来通过number/char/date指定,变量name得到正确的值以后,继续执行相关下面的程序!
例:accept a char prompt '请输入员工的雇佣时间(yyyy-mm-dd):' hide 
例:accept a char prompt 'input a:' hide

verify:是否给出原值及新值提示。

set verify on/off;

具体请参看下面的例子:

plsql程序1:

declare  v_sal number(6,2);  v_ename emp.ename%type:='&ename';
begin  select sal into v_sal from emp
where lower(ename)=lower(v_ename);
if v_sal<2000 then  update emp set sal=v_sal + 200  where lower(ename)=lower(v_ename);
end if;
end;  /  

plsql程序2:

declare  v_sal number(6,2);  v_ename emp.ename%type:='&&ename';
begin  select sal into v_sal from emp
where lower(ename)=lower(v_ename);
if v_sal<2000 then  update emp set sal=v_sal + 200  where lower(ename)=lower(v_ename);
end if;
end;  /  

secureCRT的一个会话中先执行程序2,再次执行程序1,会发现直接PL/SQL procedure successfully completed.
而不让我输入ename,将set verify off也不行
另一个打开会话 将set verify off后,每次执行程序1都会让你输入ename。
这就是在前面一个会话执行程序2的时候已经将ename,保存为了会话的变量,而不是plsql程序的变量。

Oracle入门(十三A1)之替换变量,变量名,变量名相关推荐

  1. oracle宿主常量及变量,oracle入门札记

    oracle入门笔记 程序--合理的管理资源 增加资源 平衡资源 减少资源 限制资源 oracle:instance,database database:物理存储,逻辑存储 物理存储:三大核心文件:数 ...

  2. Oracle入门(十四.4)之在PL / SQL中使用变量

    一.变量的使用 (1)使用变量的原因 •临时存储数据 •储存值的操作 •可重用性 (2)处理PL / SQL中的变量 变量是: •在声明部分声明并初始化 •在可执行部分中使用并分配新值 变量可以是: ...

  3. 读书笔记:SQL 查询中的SQL*Plus 替换变量(DEFINE变量)和参数

    本文为"SQL*Plus 替换变量 - 在 SQL 查询中定义变量和参数"的读书笔记. 此文主要是讲替换变量,也称为DEFINE变量,但也涉及了绑定变量和SQL Plus系统变量. ...

  4. SQL*Plus中替换变量与定义变量

    替换变量 SQL*Plus中的替换变量又叫替代变量,它一般用来临时存储相关数据:在SQL语句之间传递值.一般使用&或&&前缀来指定替换变量. 关于使用替换变量,一般是利用其创建 ...

  5. Oracle 变量绑定与变量窥视合集系列一

    <Oracle 变量绑定与变量窥视合集> 数据库环境 LEO1@LEO1> select * from v$version; BANNER --------------------- ...

  6. JAVA中整型常量的长度,Java基础入门篇(三)——Java常量、变量,

    Java基础入门篇(三)--Java常量.变量, 一.Java常量 (一)什么是常量 常量指的是在程序中固定不变的值,是不能改变的数据.在Java中,常量包括整型常量.浮点型常量.布尔常量.字符常量等 ...

  7. Python学习入门基础 -- 第四章 列表、元组、字典、字符串变量使用、变量进阶

    Python基础入门知识点总结传送门 第一章 认识Python.Python常用集成开发环境PyCharm 第二章 注释.变量基本使用.变量的命名 第三章 运算符.判断if语句.while和for循环 ...

  8. oracle undefine的用法_oracle define,undefine,ACCEPT,以及变量的获取 命令

    oracle的define命令的使用 查看define的帮助 SQL> ? define DEFINE ------ Specifies a substitution variable and ...

  9. 浅显易懂 Makefile 入门 (02)— 普通变量和自动变量定义、使用($@、$^、$< 作用)、变量覆盖 override、变量的来源 origin

    1. 变量的定义 Makefile 文件中定义变量的基本语法如下: 变量的名称=值列表 变量的名称可以由大小写字母.阿拉伯数字和下划线构成.等号左右的空白符没有明确的要求,因为在执行 make 的时候 ...

  10. Linux下sed命令替换配置文件中某个变量的值(改变包含字符的一行的值)之二——只改变第一出现的那一行

    一.背景 在之前的文章中有介绍过<Linux下sed命令替换配置文件中某个变量的值(改变包含字符的一行的值)> 但是这种方法存在一定的问题,就是假如某个变量在一个文件中出现两次,却只想更改 ...

最新文章

  1. Runtime知识点整理
  2. VS为VC++添加UAC控制(VC程序默认管理员运行)
  3. [tensorflow、神经网络] - 使用tf和mnist训练一个识别手写数字模型,并测试
  4. LoadRunner8.1破解汉化过程
  5. 《Ansible权威指南 》一第2章 Ansible基础元素介绍
  6. 基于JAVA+Servlet+JSP+MYSQL的教室资源管理系统
  7. android datepicker控件,android中控件DatePicker控件-Fun言
  8. 微软开源深度学习优化库 DeepSpeed 连登 GitHub 趋势榜!
  9. 破产的圣文森特医院,如何利用大数据寻求解救方案?
  10. thinkphp遗留问题
  11. 第6章 人口城市化
  12. react实例9-拖拽2
  13. Ubuntu18.04中cURL 77 错误:error setting certificate verify locations
  14. npm安装报错(npm ERR code EPERM npm ERR syscall mkdir npm ERR path CProgram Filesnodejsnode_ca...)
  15. Ubuntu 20.04 LNMP 环境编译安装
  16. Android中的事件处理总结
  17. 冒泡排序保姆级心得分享
  18. 计算机c盘如何腾出空间,WIN8的C盘太大怎么清理腾出空间呢
  19. 实验五——数据库设计实验
  20. sighold,sigset,sigrelse,sigpause,sigignore

热门文章

  1. [XML-Jsoup]Jsoup_对象的使用(Jsoup工具类,Document,Elements,Element,Node)
  2. 高等数学下-赵立军-北京大学出版社-题解-练习11.1
  3. 《C++ Primer》13.1.4节练习
  4. slot属性值_深入理解vue中的slot与slot
  5. 16进制数用空格分开 tcp_面试时,你是否被问到过TCP/IP协议?
  6. WordList02
  7. 选择排序 插入排序 交换排序
  8. Codeforces Round #730 (Div. 2) D2. RPD and Rap Sheet (Hard Version) 交互 + k进制的转换
  9. 网络流专题(最大流与费用流)(一)
  10. test1 3-15 模拟赛1