考试网 >> IT认证 >> Oracle >> Oracle指导 >> PL/SQL代码分析构建代码分析实用程序

PL/SQL代码分析构建代码分析实用程序

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

OVLD    ARGNAME   POS  SEQ  LVL  TYPE      DEFVAL  IN_OUT

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

 1           1   0   0                IN

 2           0   1   0   VARCHAR2         OUT

  通过该结果,我得出以下结论:

  如果该程序是重载的,则 OVERLOAD 列(在上面的例子中简称为 OVLD)表明这是第 N 个重载;否则该列为 NULL.当某个过程没有参数,ALL_ARGUMENTS 会包含一个位置为 1 而序号和层次均为 0 的一行。

  当某个函数没有参数,就不会有这样一个特殊行。与此不同,它仅有一行描述 RETURN 子句,其中位置为 0. RETURN 子句的 argument_nameRETURN 为NULL.

  现在来看一下在 ALL_ARGUMENTS 中显示了一些描述过程 composites 的行,这些行里装载的全部是简单的、或复合的数据类型,例如记录或是集合:

CREATE OR REPLACE PACKAGE allargs_test IS PROCEDURE composites (account_in NUMBER,person person%ROWTYPE,multirec myrec3,num_table number_table,recs_table myrec_table);END;

  在分析这些信息后,我得出以下结论:

  层次显示的是参数列表中的嵌套层数。所有真正出现在参数列表中的参数层次都为0.如果某个参数是一个复合参数,则该复合参数中的每一个元素(例如每一个记录的字段)在 ALL_ARGUMENTS 显示的层次就为1,依此类推。

  位置和层次的组合对于给定程序的 ALL_ARGUMENTS 行不是唯一的,即使在单一重载内也是如此。但是,位置和层次的组合对于某个给定的"0 层"参数 (参数列表中实际显示的参数)却是唯一的。

  由于能够在其他复合参数中声明如集合和记录这样的复合参数,而且对嵌套层数没有限制,ALL_ARGUMENTS 的内容可能会变得非常复杂。

  数据类型字段只显示"通用"类型,例如 PL/SQL RECORD,但并不显示实际的类型。为此,我需要进一步深入研究一下 ALL_ARGUMENTS 的 TYPE_* 列。

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