WEB开发网
开发学院数据库Oracle 使用Oracle来实现实时通信的过程 阅读

使用Oracle来实现实时通信的过程

 2009-07-07 11:50:03 来源:WEB开发网   
核心提示: 每个数据库开发者都有在代码中使用大量的DBMS_OUTPUT调用的调试经历, 在开始一个SQL * Plus会话之后,输入SET SERVEROUTPUT ON然后运行这个过程,使用Oracle来实现实时通信的过程(5), 放进DBMS_OUTPUT.PUT_LINE调用的消息显示在屏幕上

每个数据库开发者都有在代码中使用大量的DBMS_OUTPUT调用的调试经历。 在开始一个SQL * Plus会话之后,输入SET SERVEROUTPUT ON然后运行这个过程。 放进DBMS_OUTPUT.PUT_LINE调用的消息显示在屏幕上--但是只有在过程完成以后才能显示出来。 这个过程极端地麻烦,尤其在调试长的批处理时通常是要运行整晚。 你可以等待10到12小时仅仅是为了查出错误的代码,然后修改,再去等待下一个10到12个小时? 然而,如果你有访问消息的实时的办法,那么你可以在头5到10分钟内捕捉到问题。

DBMS_OUTPUT包也有其他的缺点。 例如,它不接受可变的布尔类型以及它有255字符每行的限制(如果你想输出一个长的消息的话,那么你会得到这个异常:ORA - 20000 : ORU - 10028 : line length overflow, limit of 255 bytes per line)。 把它的缺点全部列出这已经超出本文的范围了,但是重要结论就是DBMS_OUTPUT包不许数据库开发者实时的看到消息。

谈到服务器上的OS文件,你会不会喜欢把选定的数据从服务器中输出到一个Excel电子表格呢? 一个办法就是使用Oracle的UTL_FILE包,它提供了一个标准OS流文档输入/输出的限制级版本。 然而, PL/SQL程序只能访问在初始化文件INIT.ORA的UTL_FILE_DIR参数规定的目录。 这个参数大多数情况下是空的。为了使这个目录可用来进行文件访问,必须请数据库管理者修改初始化文件。 这有些麻烦。使用EmailUtils包,你可以简简单单的把数据写入一个电子邮件中,发送给自己,然后收到它的副本粘贴到自己喜欢的文档编辑器中。

另一个版本只有当提供pMessage参数值时执行:

procedure Send(pMessage in varchar2);

第二个版本是用作调试的版本。 所有的电子邮件消息共用同样的发送者、接受者、邮件主机、抄送接受者和主题信息,这些都是我在会话的开始的时候设置好的。 下面是一个PL/SQL程序块的例子:

上一页  1 2 3 4 5 6 7  下一页

Tags:使用 Oracle 实现

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