利用替换变量提高Oracle数据库系统的交互性

发表于:2008-12-04 14:32

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:网络转载

#
Oracle
分享:

  数据库管理员在写SQL命令的时候,总希望SQL语句能够满足不同环境的需要。为此,可以通过交互式命令来提高SQL语句的灵活性。当在一个SQL语句中,加入了交互式变量之后,在语句运行之时,数据库就会提醒用户输入相关的变量。如下图:

  

  不过在实际工作中,往往把这个SQL语句保存为脚本。如此的话,可以进一步提高脚本文件的可重用性。有时会,在数据库管理的时候,结合替换变量,写一些有用的脚本文件,可以起到画龙点睛的作用。笔者在平时数据库开发与管理中,就喜欢采用这种方式来简化工作。在这篇文章中,笔者就结合自己的工作经验,给大家谈谈如何在Oracle数据库中利用可替换变量来提高SQL语句的灵活性。以及在使用替换变量时的一些注意点。

  一、 定义与使用替换变量

  在Oracle提供的相关工具中,如SQL PLUS管理平台中,允许数据库管理员采用替换变量来提高SQL语句的灵活性。替换变量的定义跟普通变量的定义类似,只需要在变量名前面加入&符号即可。如上面例子中的“&name_filed”就表示一个替换变量。当运行一段有替换变量的SQL语句时,数据库系统会自动提醒用户要输入哪些变量值。

  如在如下这条语句中,&name_filed表示用户想要显示的字段值。若用户想要显示某个表中的多个字段的话,则可以在这里定义多个替换变量。而条件语句中的'&NAME'则表示一个限制条件,或者说一个查询参数。这条语句的大意就是用户输入员工的名字,然后让系统查询出用户想了解的信息,如用户的身份证号码等等。

  SQL> select &name_filed from dtmfg.ad_user t where t.name like '&NAME';

  细心的读者或许会发现,在查询条件中的替换变量,为什么要用单引号括起来呢?这是因为,我们在写SQL语句的时候,若字段时字符型的话,就需要用单引号括起来。所以,在定义替换变量的时候,跟平时写SQL语句类型。若数据类型是字符或者日期型的,则需要在定义替换变量的时候,用单引行括起来。否则的话,在用户执行这条语句、输入变量的时候,每次都需要把括号添加进去。那就非常的麻烦。相比起来,还不如在定义这条SQL语句的时候,就加入单引号。如此,在输入对应值的时候,就不用用单引号括起来了,可以直接输入。

  另外,替换变量不但在Select语句中可以使用,在Update等语句中也可以普遍应用。

  二、 定义默认值

  有时候,对于替换变量我们可能会有默认值。如果数据库管理员已经知道替换变量的具体值,又想避免运行脚本文件时反复出现,则可以给替换变量定义一个默认值。在SQL Plus平台中,数据库管理员可以利用Define命令来定义替换变量的默认值。

  在定义替换变量默认值的时候,需要注意几个问题。

  一是要合理使用单引号。该用单引号括起来的,就要使用单引号;不需要用的时候,坚决不用。否则的话,会造成SQL语句的运行错误。那么什么时候该用单引号呢?这主要是根据SQL语句来的。平时在写SQL语句的过程中要用到单引号的,则在定义默认值的时候,也要用单引号括起来。如果平时不用的话,则就可以不用。如在定义字段名称的默认值时,就不需要用单引号括起来。画蛇添足,反而会导致SQL语句的执行错误。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号