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

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

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

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

  二是这只是定义了一个默认值。当定义来一个默认值之后,系统就不会提示用户输入相关的参数,而直接采用默认值。如在上面这个例子中,若利用 define NAME='SuperUser'这条语句定义了NAME的默认值之后,在执行这条Select语句的时候,就不会再提示用户输入NAME值。我们可以利用Define命令来查看当前环境中所有的可替换变量的值。也可以利用Define NAME来查看可替换变量NAME的默认值。

  三是若用户采用的是脚本文件的话,则可以直接把这个定义默认值的语句放在脚本文件的一开始。如此的话,这个默认值的定义就会随着脚本文件而走。用户不用每次使用脚本文件的时候,都先去定义默认值。这个这个默认值的作用域只是适用于当前的会话。当数据库管理员结束当前的会话后,这个变量的默认值也就失效了。为了在下次重新会话的时候,仍然可以利用这个默认值,故在脚本文件一开始定义可替换变量的默认值,也是非常有必要的。

  四是利用Define命令来定义可替换变量的时候,有一个限制条件。即可替换变量必须是字符型的数据。若用户想定义的可替换变量是数字型的,如员工的薪水,此时,就需要采用ACCEPT命令。否则的话,就是一个无效的默认值。

  若我们有时候不需要这个默认值,需要取消他,改如何处理呢?此时,我们就可以利用undefine命令,来取消某个替换变量的默认值。当然,我们也可以利用Define命令来给某个替换变量设置一个新的值。在实际工作中,可能还是直接采用Define命令来为其设置一个默认值来的方便。

  三、 测试完毕后,保存为脚本文件

  为了增强这个SQL语句的可重用性,我们往往会把写好的SQL语句保存为脚本文件。如此的话,下次需要用到的时候,直接执行这个脚本语句即可。在保存的时候,为了有更好的可读性,笔者有一些小小的建议。

  一是最好在脚本文件的开头,注释一些这条语句的具体用途。俗话说,好记性不如烂笔头。在几个月后,很难确保你还记得这条语句的用途。

  二是给可替换变量取一些比较直观的名字。否则的话,当使用数据库管理员可能直接都不知道某个替换变量所代表的含义。另外,列的替换变量跟查询语句中的替换变量最好进行区分,如可以利用前缀进行区别。如此做的话,这个语句的可阅读性就会增强。

  三是可利用Prompt命令来输出一些提示信息。在编写替换变量的时候,要像编写其他程序一样,养成为每个可替换变量做好注释的习惯。这时作为数据库管理员一个必备的技能之一。

  四、 其他解决方案

  针对Oracle数据库SQL语句的交互性而言,它还提供了一些其他的解决方案。

  如利用ACCEPT、PAUSE、PROMPT三个命令结合使用提供一个模拟的用户输入界面。ACCEPT命令可以让数据库管理员指定替换变量的类型。因为Define定义替换变量默认值的时候,只能够接受字符型数据的默认值。若是其他数据类型的默认值的话,就要用ACCEPT来定义。而 PAUSE顾名思义,可以让脚本语句暂时运行,以提供一个更加友好的用户界面。如可以让用户通过输入回车键来执行剩下的脚本语句等等。如此,就给用户一个 “喘息”核对数据的机会。

  如可以通过绑定变量的方式,来实现替换变量的功能。绑定变量只在当前会话中存在,同名的绑定变量一最后一个定义为准。绑定变量在赋值的时候,比较麻烦,需要采用Excute命令来给绑定变量进行赋值。所以,在实际应用中,不是很广泛。

  笔者在这集中解决方案中,比较喜欢采用前面两种方式。即利用Define与Accept语句来定义替换变量,同时采用Prompt与Pause命令来给用户以及自己设计一个人性化的输入界面。

22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号