考试网 >> IT认证 >> Oracle >> Oracle指导 >> PL/SQL构建代码分析工具之从测试开始

PL/SQL构建代码分析工具之从测试开始

发布时间:2006-06-28 10:12     点击:
分页:上一页  1 2 3 4 [5] 6 7 8  下一页

  函数和过程具有相同名称和参数列表,包括不带参数的情况。区分这两者并没有问题,因为它们在代码中的使用方法不同。

  无效的超载

  两个超载程序具有不同数量的非缺省参数,导致歧义的参数列表。

  两个程序具有单个参数,数据类型相同但参数名不同。

  两个程序具有相同的名称,具有单个参数,但却是同系列中不同的数据类型。

  一个程序没有参数,第二个程序具有一个带缺省值的参数。

  一个程序具有 N 个参数,第二个程序具有 N+1 个参数,全部带有缺省值。

  一个程序具有 N 个参数,其中 N-1 个参数有缺省值;第二个程序具有 N+1 个参数,其中最后两个缺省。

  一个程序具有一个参数,第二个程序具有两个参数,其第二个参数有缺省值。

  我肯定还将考虑其他测试方案,但这些已足够继续进行了。如何最好地进行上述方案的测试?我需要在程序包中定义这些不同的结合。让我们称之为 allargs_test.为每个测试方案使用一个不同的超载程序名称,可能效果会较好。这样可以保持事情清晰易辨而且非常有条理。实际上,我要创建一个表。此表有助于工作但还不够。我还需要为这些测试方案分别指定期望的结果。它是有效的超载吗?如果不是,它是如何失败的?我如何用一种能使用 utPLSQL 自动运行测试的方式来获取这种信息?问题太多了。

  在本文中,我没有指定所有测试方案的结果全集;我认为大致了解全部过程就足够了。

  考虑 samefamily1 过程。以下是这一超载的详细说明:

CREATE OR REPLACE PACKAGE allargs_test IS PROCEDURE samefamily1 (arg IN NUMBER);PROCEDURE samefamily1 (arg IN INTEGER);

  很清楚,arg 参数的数据类型太相似了,它们都属于数字型。因此,这将是导致故障的歧义超载。对 samefamily1 运行 Codecheck 的结果应该类似于:

allargs_test.samefamily:invalid overloading

  结果看来是很基本的东西。我们只须说是或不是吗?或者说无效或有效?在本例中,我想是这样的。但我们再来看另一个更有趣的情况。考虑 noparms2 的开头部分:

分页:上一页  1 2 3 4 [5] 6 7 8  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有