文章作者 100test 发表时间 2007:08:06 13:04:50
来源 100Test.Com百考试题网
DBMS_PIPE通过创建管道,可以让至少两个进程进行通信.Oracle的管道与操作系统的管道在概念上有相同的地方,但是在实现机制不同.
下面介绍实现具体步骤:
1、创建一个程序包,姑且起名叫DAEMON,SQL语句如下:
/*创建daemon程序包*/
CREATE OR REPLACE PACKAGE BODY daemon AS
/*execute_system是实现运行os命令的函数*/
FUNCTION execute_system(command VARCHAR2,
timeout NUMBER DEFAULT 10)
RETURN NUMBER IS
status NUMBER.
result VARCHAR2(20).
command_code NUMBER.
pipe_name VARCHAR2(30).
BEGIN
pipe_name := DBMS_PIPE.UNIQUE_SESSION_NAME.
DBMS_PIPE.PACK_MESSAGE( SYSTEM ).
DBMS_PIPE.PACK_MESSAGE(pipe_name).
DBMS_PIPE.PACK_MESSAGE(command).
/*向daemon管道发送表示命令的字符*/
status := DBMS_PIPE.SEND_MESSAGE( daemon , timeout).
IF status <> 0 THEN
RAISE_APPLICATION_ERROR(-20010,