不同的环境切换不同的自己环境变量是什么意思思

1188人阅读
Oracle数据库基本管理(335)
oracle开发SQL语句(271)
oracle转载博文未看(321)
9.6.1 替换变量
16:53 宁洪/吴云洁/李梦汶 等译 清华大学出版社&&字号:&|&
综合评级:
&&&&&&&&&&
《OCP/OCA认证考试指南全册:Oracle Database 11g(1Z0-051, 1Z0-052, 1Z0-053)》第9章使用SQL检索、限制和排序数据,本章首先介绍了该语句的基本形式,然后不断扩充其核心功能。还讨论了WHERE子句,该子句指定一个或者多个条件,Oracle服务器通过计算这些条件来限制语句返回的行。最后讨论了&符号替换:这是一种通过在运行时替换查询元素,重用相同的语句来执行不同的查询的机制。本节为大家介绍替换变量。
9.6.1& 替换变量
可将替换变量看作是占位符。SQL查询由两个或者多个子句组成。每个子句又可划分为子子句,这些子子句由字符文本组成。所有文本、子子句或者子句元素都是替换的对象。
1. 单个&符号替换
SQL语句中最基本、最普遍的元素替换形式是单个&符号替换。&符号是用来在语句中指定替换变量的符号,它在变量名之前,并且它们之间没有空格。当执行语句时,Oracle服务器处理语句,发现替换变量,并尝试用下面两种方法之一来解析变量的值。首先,它检查在用户会话中是否定义了该变量(DEFINE命令将在本章稍后讨论)。如果没有定义变量,用户进程提示需要一个值,这个值会替换变量。提交值之后,语句就完成了,Oracle服务器就会执行它。在执行时解析&符号替换变量,有时称之为运行时绑定( runtime binding)或者运行时替换(runtime
substitution)。
您可能被要求查找联系信息,例如给定LAST_NAME或者EMPLOYEE_ID值的PHONE_NUMBER数据。通用查询形式如下所示:
当运行该查询时,Oracle服务器提示给名为LASTNAME的变量输入一个值。可以输入员工的姓(如果知道的话),如&King&。如果不知道员工的姓氏,但知道员工的ID号,也可以输入ID号,然后按Enter键提交。接下来Oracle会提示为EMPNO变量输入一个值。输入值(例如0)之后,按Enter键。之后,Oracle就没有剩余的替换变量需要解析了,因此执行下面的语句:
可以将变量指定为任何字面值,但必须是有效的标识符名称。提示变量时替换的字面值必须是与该上下文相适应的数据类型;否则就会返回ORA-00904: invalid identifier错误。如果变量要替换字符或者日期值,那么需要将字面值包含在单引号内。一种有用方法是,当处理字符和日期值时,将&替换变量包含在单引号内。这样,要求用户提交字面值时,就不必输入引号了。
2. 双&符号(&&)替换
有时在相同查询中会多次引用替换变量。在这种情况下,Oracle服务器会提示输入每个单&符号替换变量的值。对于复杂脚本而言,这种工作可能效率低下、令人乏味。下面的语句从EMPLOYEES表中检索FIRST_NAME和LAST_NAME列,查找这两列中包含相同字符串的行:
这两个条件相同,但应用于不同列。执行该语句时,首先提示输入在与LAST_NAME列的比较中使用的SEARCH变量的替换值。之后,提示输入在与FIRST_NAME列的比较中使用的SEARCH变量的替换值。这里有两个问题。第一,输入相同的值两次,这样做效率低下。第二,且更重要的是,查询可能出现错误,因为Oracle没有验证每次都为相同名称的替换变量输入相同的字面值。在本示例中,逻辑假设是替换变量的内容应该相同,但变量有相同名称这一点对于Oracle服务器没有意义,它不做这种假设。图9-8中的第一个示例显示了运行前面的查询并给SEARCH替换变量提交两个不同值之后的结果。在此特例中,结果不正确,因为要求检索包含相同字符串中包含的FIRST_NAME和LAST_NAME对。
图9-8& &&替换
如果要在相同查询中多次引用替换变量,而您要求语句中变量的值必须相同,在这种情况下,最好使用&&替换。这需要在查询中多次出现的替换变量第一次出现时添加前缀,要使用两个&符号而不是一个。当Oracle服务器遇到&&替换变量时,会为该变量定义会话值,并不再提示输入后续引用中替换该变量的值。
图9-8中的第二个示例显示在有关LAST_NAME列的条件中的SEARCH变量之前添加两个&符号,之后在有关FIRST_NAME列的条件中的SEARCH变量之前添加一个和符号。当执行时,对于LAST_NAME列而言只会提示一次输入一个值取代SEARCH变量。在后续引用中,会自动从该变量的会话值中解析这个值,和在有关LAST_NAME列的条件中一样。要解除SEARCH变量的定义,需要使用本章稍后讨论的UNDEFINE命令。
不管您是作为开发人员、数据库管理员或者公司终端用户,遇到的SQL查询都可以广义分为即席查询或者重复查询。即席查询通常是在某些数据研究练习过程中写的一次性语句,不可能重用它们。重复查询是经常运行或者定期运行的查询,它们通常保存为脚本文件,当需要时,几乎不需要修改就可以运行。重用节省了大量重复开发时间,并允许这些一致查询受益于Oracle本身自动调整功能,这些功能可以提高查询性能。
3. 替换列名
到目前为止,WHERE子句的字面元素都是替换讨论的焦点,但实际上SQL语句的任何元素都是可以替换的对象。在下面的语句中,FIRST_NAME和JOB_ID列是静态的,总是会被检索,但选中的第三列是变化的,被指定为名为COL的替换变量。在ORDER BY子句中按该替换变量列排序结果集:
和字符和日期字面值不一样,当显式指定或者通过&替换变量指定时,列名引用都不需要单引号。
4. 替换表达式和文本
在运行时几乎可以替换SQL语句的任何元素。条件是Oracle要求至少第一个单词是静态的。在SELECT语句中,至少需要SELECT关键字不变,可以将语句的余下部分替换为如下所示:
当执行时,会提示提交名为REST_OF_STATEMENT变量的值,在追加到SELECT关键字后,它可以是任何合法查询。适合&替换的是那些多次运行只是略有不同的语句。
【责任编辑:&TEL:(010)】
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1810352次
积分:20305
积分:20305
排名:第250名
原创:355篇
转载:1186篇
评论:47条
(12)(3)(25)(37)(9)(32)(19)(7)(5)(11)(26)(37)(29)(76)(26)(19)(41)(63)(76)(32)(33)(88)(41)(16)(25)(37)(73)(63)(92)(75)(120)(159)(55)(67)(13)(1)设计不同的语言环境,用“你真行啊”这句话表达不同的语气和含义.1.__________________.表达( )的语气2.__________________.表达( )的语气3.__________________.表达( )的语气
1 这么难的事你都能搞定,你真行啊!表达赞扬的语气.2这么简单的事你都搞砸了,你真行啊.表达嘲讽的语气.3,这件事这么难,你真行啊?表达质疑的语气
为您推荐:
其他类似问题
扫描下载二维码人与人本质的区别在哪,可以怎么改变,假如我换一个 完全陌生的世界,环境,凭借什么样的东西可以去立足?
感觉脑子一片混乱,想改变,无从下手,想去看书,不知道看什么,自己摸索好累,谁能知道我吗
按投票排序
对于我而言,知乎几乎可以解决我面临的一切实际问题,因为写过一些长答案,真正懂得了,好答案到底是怎么回事。你想知道人与人之间的本质区别,但实际上不是这样的,我猜你是纳闷为啥看着跟你差不多的人能取得大得多的成功?知乎上的大牛们答过这类问题, 而且答得比我好,但是你不知道,或者说你看完了也不懂。我不打算重复探讨这一问题,所以直接给你解决方案。一、给自己定一个理论上能达成的最高成就。我在12月份时给自己定了个目标,月底把粉丝凑够100,接下来每个月粉丝翻倍。按照计划我这个月底应该有800粉,但目前来看应该能达到1000。当你有了一个很高的目标时,你才能竭尽全力地去集中自己的所有资源,去考虑和利用自己的优势,看看自己的能力极限到底在哪。二、找到正确的道路与学校不同,社会没有公式让你套,所有的社会理论都要你自己去挖掘,哪怕别人告诉你了,如果你自身水平有限,你也理解不了(知道与理论是完全不一样的),自建的理论就是你的路,不同的路经过不同组合会产生许多不同的路,走了弯路、岔路,慢慢也就知道正确的路在哪。知乎上绝对正确的路有三条,一则清理对某些人的关注,二则反复阅读某些答案,最后,是自己去写答案。PS:自己写了答案后,还能更好地理解别人的答案,哪怕不是一个类型的问题。三、要灵活当你给自己定了个目标后,不能一条道跑到黑,在你构建的路上,走多了,你就会发现很多新的道路,这些新的路会比原路更有效,那就转弯。在知乎答题后,我发现了自己的知识水平严重不足,所以,涨粉计划我会在这个月底停止,因为再多的粉丝都无法提升自己,继续写无用的答案是浪费时间。下个月开始,我打算只会写两种答案,一,对我自己有用的,开始认真读书,写些心得之类。二,对别人有用的,比如此题,当然,水平有限,如果还是帮不了你,望见谅。四、要有底线,我的底线,或者说规则吧,在知乎上不攻击他人,不主动开始骂战。在现实中的规则,不走犯罪道路,不搞垃圾广告、微信营销这类可能有害的行径。以上。RAmen!
本质在于有没有一个完整的对待这个社会的思维体系,无论对错,关键是完整,完整到可以解释并分析你能遇到的所有问题,方法也也许不是最优,但一定要有,并坚信之。
已有帐号?
无法登录?
社交帐号登录“你有一个思想,我有一个思想,相互交换,就有两个或两个以上的思想”说明:A.社会是一个合作体系,合作就需要彼此分享各自的经验智慧和劳动成果B.分享就是把自己有价值的东西提供给别人,与他人共同拥有和享受C.在社会生活中我们通过分享和交流会有新的提高和收获,获得成功和进步的条件D.分享就意味着失去,意味着把“我的”变成了“你们的” - 跟谁学
在线咨询您好,告诉我您想学什么,15分钟为您匹配优质老师哦马上咨询
搜索你想学的科目、老师试试搜索吉安
在线咨询您好,告诉我您想学什么,15分钟为您匹配优质老师哦马上咨询&&&分类:“你有一个思想,我有一个思想,相互交换,就有两个或两个以上的思想”说明:A.社会是一个合作体系,合作就需要彼此分享各自的经验智慧和劳动成果B.分享就是把自己有价值的东西提供给别人,与他人共同拥有和享受C.在社会生活中我们通过分享和交流会有新的提高和收获,获得成功和进步的条件D.分享就意味着失去,意味着把“我的”变成了“你们的”“你有一个思想,我有一个思想,相互交换,就有两个或两个以上的思想”说明:A.社会是一个合作体系,合作就需要彼此分享各自的经验智慧和劳动成果B.分享就是把自己有价值的东西提供给别人,与他人共同拥有和享受C.在社会生活中我们通过分享和交流会有新的提高和收获,获得成功和进步的条件D.分享就意味着失去,意味着把“我的”变成了“你们的”科目:最佳答案C解析
知识点:&&基础试题拔高试题热门知识点最新试题
关注我们官方微信关于跟谁学服务支持帮助中心

我要回帖

更多关于 二八切换是什么意思 的文章

 

随机推荐