可以使用和符号(&)来替换SQL语句中的元素,包括所有文本、子句、子子句。即通过和符号来指定变量。SQL语句中最基本、最普遍的元素替换形式是单个和符号(&)替换。和字符是用来在语句中指定替换变量的符号,它在变量名之前,并且它们之间没有空格。

Oracle使用以下两种方式来确定变量的值:

检查用户会话中是否使用DEFINE定义了该变量。

如果没有定义变量,在SQL进程运行时,由用户指定(即输入一个变量值)。

如果变量要替换字符或者日期值,需要将字面值包含在单引号内。

示例1:

SQL> select employee_id,last_name,salary from employees

2  where last_name='&LASTNAME';

Enter value for lastname: King

old   2: where last_name='&LASTNAME'

new   2: where last_name='King'

EMPLOYEE_ID LAST_NAME                     SALARY

----------- ------------------------- ----------

156 King                           10000

100 King                           24000

注:如不在&LASTNAME外添加'',则需要在输入King时添加'',否则会报错。

示例2:

SQL> define LASTNAME=King;

SQL> select employee_id,last_name,salary from employees

2  where last_name='&LASTNAME';

old   2: where last_name='&LASTNAME'

new   2: where last_name='King'

EMPLOYEE_ID LAST_NAME                     SALARY

----------- ------------------------- ----------

156 King                           10000

100 King                           24000

可以使用和字符替换列名,和字符、日期字符字面值不一样,当指定或者通过&替换变量指定时,列名引用都不需要单引号。

和字符可以替换SQL语句的任何元素,但至少第一个单词是静态的,如:SELECT $rest_of_statement。

oracle不会检验相同替换变量输入的字面值。

使用双和符号(&&)定义的变量,oracle服务器会将其作为会话变量,在后续引用中不再提示替换该变量值。在会话期间或在显式解除定义前,此变量一直有效。

使用UNDEFINE可以显式解除&&定义的会话变量值。

DEFINE命令有两个作用:

可以用来检索SQL会话中当前定义的所有变量列表

可以定义会话期间一个或者多个变量的值

使用SET DEFINE ON/OFF可以打开或关闭和字符(&)的替换功能。当输入的字面值中包括和符号(&)时,可在之前使用set define off来关闭字符(&)的替换功能。

VERIFY命令专用于SQL*PLUS,可以控制提交的替换变量是否显示到屏幕上,以便验证替换是否正确。即示例中的:

old   2: where last_name='&LASTNAME'

new   2: where last_name='King'

可以使用SET VERIFY ON/OFF来打开或关闭此功能。

mysql替代符号_SQL语言之和符号(amp;)替换相关推荐

  1. mysql 查询语句_SQL语言mysql基础查询语句

    单表查询.条件查询.查询并排序.限制结果查询.查询并排名.分组聚合查询.······ -- DQL操作,数据基本查询语言使用-------------------------------------- ...

  2. mysql groupby 日期_sql 语言 groupBy 分组统计时间段解决方案

    记录一下数据统计时遇到的问题和解决方案 先贴完整的效果 问题一 GroupBy数据不是每天连续的 统计图是关于某段时间内,每年/每月/每周的微博数量的折线图.数据为连续不断的,但现实的情况中数据库里的 ...

  3. c语言是pdd格式的文件吗,C语言中符号格式说明

    scanf 语法: #include int scanf( const char *format, ... ); scanf()函数根据由format(格式)指定的格式从stdin(标准输入)读取,并 ...

  4. c语言符号txt下载,c语言中符号含义.txt

    c语言中符号含义.txt char 壺 壨 char ; char 壻 char a; char asd; char xa; float 壺 壨 float ; float 壻 float a; fl ...

  5. C语言有符号整数最小值,16位带符号整数为什么是

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:16位带符号整数为什么是回答:剩下15位二进制数的最大值是每一位数都是1的情况,即2^15-1=326.326化成二进制为1000 ...

  6. c语言常用符号与英文,C语言常用符号与英文(7页)-原创力文档

    C语言常用符号与英文 c语言的符号含义 main() {int w=4,x=3,y=2,z=1; printf("%d\n"): 优质解答 举例: a=1; b=2; a>b ...

  7. c语言无符号扩展,C语言无符号和有符号的区别

    C语言定义一个int类型时,默认是有符号数,关键字signed常省略,如: int a; signed int a; signed a; 这三句是一样的定义 定义无符号数时,必须加关键字unsigne ...

  8. c语言中有符号数的补码,[分享]带符号数的表示-----补码

    [分享]带符号数的表示-----补码 补 码 表 示 由于原码表示中0的表示形式的不唯一和原码加减运算的不方便,造成实现原码加减运算的硬件比较复杂.为了简化运算 让符号位也作为数值的一部分参加运算,并 ...

  9. 基于C语言设计符号表

    基于C语言设计符号表 c-语言的语法描述 系统设计 符号表的实现 符号表采用了哈希表的形式,可以方便地查找.插入和删除,但是问题也随之而来,就是符号的作用于较难跟踪.很有可能同一名称的变量在不同作用于 ...

最新文章

  1. 深度学习Deep learning:四十九(RNN-RBM简单理解)
  2. 在web.config里注册HttpModule
  3. cas 怎么过滤带pathvariable_过滤材料怎么摆?记住这个“公式”就好~
  4. 【2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) D】Count The Bits【数位DP】
  5. 遥感植被指数128个
  6. 山寨智能机多采用盗版Windows Mobile系统
  7. linux操作系统共有几种版本
  8. 移动端APP设计趋势
  9. 激光传感器构建栅格地图
  10. 江苏各大高校开学具体时间,快来看看有你的学校吗?小伙伴们想开学了吗?
  11. ping检测整个网段地址在线
  12. js获取系统当前时间,实现钟表功能
  13. C#记录程序运行时间记录显示
  14. Unity 制作签名背景透明化效果,抠字效果
  15. “中国软件杯”西北大学宣讲开启 课工场人工智能专家深度讲解解题策略
  16. 世界上各个国家和首都
  17. 盈帆报表软件制作编号报表(报表工具)
  18. 第二章计算机网络答案,计算机网络第二章作业参考答案
  19. 【天道酬勤】 腾讯、百度、网易游戏、华为Offer及笔经面经
  20. 单声道音频播放出立体声效果

热门文章

  1. Java 实现QQ第三方登录
  2. 路径中正斜杠和反斜杠的区别
  3. MySQL聚簇索引深入理解
  4. 软考信息安全工程师必会--3000+字文章浅析DES加密算法
  5. 三星s6 html5测试分数,魅蓝S6跑分多少?搭载三星Exynos 7872魅蓝S6跑分性能测试成绩图解...
  6. Shell打印彩色字体
  7. 不喜欢现在的工作,如何成功转行?
  8. python爬虫登录爱奇艺_python实现爱奇艺登陆密码RSA加密的方法示例详解
  9. python多进程原理及其实现
  10. vue-elementui表格实现双表头,插入input输入框