WEB开发网
开发学院数据库Oracle 分析Oracle/Oracle Forms中多用途代码 阅读

分析Oracle/Oracle Forms中多用途代码

 2007-05-09 12:14:34 来源:WEB开发网   
核心提示:几年前,当Oracle放弃客户端的Forms的时候,分析Oracle/Oracle Forms中多用途代码,随之消失的那些内置的函数中有一项是关于向警告消息函数(alert message function)传递参数,如果你处理错误或者缺失的输入参数(你应该这么做),最终,另外一种使用情况是报告数值,Forms迁移过程

几年前,当Oracle放弃客户端的Forms的时候,随之消失的那些内置的函数中有一项是关于向警告消息函数(alert message function)传递参数。如果你处理错误或者缺失的输入参数(你应该这么做),Forms迁移过程的一部分是将这个内置的函数从6i版本改成9i版本。复杂的应用可能包含有上千条警告消息,并且一个主要的应用(即Forms)的变化会导致上千条改变。做这样的改变的确是一件讨人嫌的行为。

另一方面,作为一个使用PL/SQL的DBA和程序员,你到底写过多少次DBMS_OUTPUT.PUT_LINE('')?必须写的或者敲入的DBMS_OUTPUT.PUT_LINE变得非常无聊,使用方便的、内置的短小的代码不是更好吗?可能并不是经过深思熟虑,但是更多的归咎于好运或者意识到同样的东西必须敲一遍又一遍的现实,机灵的Forms程序员们创建了自己的内置函数,采用了过程的方式来产生警告消息。相同的原理可以被用在你日常的PL/SQL代码中。事实上,你可以创建一个小的消息库管理很多类型的输出消息。让我们看看一些这样的可能性。

一个简单的警告消息过程

就像在这一章节标题中表示的那样,第一个方法是非常简单的。假设你有一个常见的需求要输出某个过程、函数或者代码块更新的记录个数。让我们假定被更新行的个数是46。使用下面的过程之后,一个简单的“am(46);”语句就可以你需要的输出:

CREATE OR REPLACE procedure am (msg number) as
begin
dbms_output.put_line('Records updated: '||msg);
end;
/

另一个版本可以处理字符串类型,因此对 “ams('your message here');”的调用显著的降低了你敲入的次数。当调试或者解决问题的代码中,有这样一个简单的内置函数对输出“where am I in the code”的语句是非常宝贵的。位置报告可以确认,比如,你进入了IF-THEN-ELSE语句中哪个分支。假如你的问题代码调用了很多次其他的对象(过程、函数等等),输出像“calling function X”或者“returned from function X”这样的状态信息可以确认过程流。最终,另外一种使用情况是报告数值。你可以报告或者跟踪一个变量的值是如何被改变的。

1 2 3 4  下一页

Tags:分析 Oracle Oracle

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接