DBMS_PIPE
- dbms_pipe允许同一实例中的两个或多个会话进行通信。
函数名 |
参数类型 |
结果类型 |
描述 |
create_pipe |
text |
void |
显式创建公共或私有管道。如果private标志为TRUE,则管道创建者被指定为私有管道的所有者 |
create_pipe |
text, integer |
void |
显式创建公共或私有管道。如果private标志为TRUE,则管道创建者被指定为私有管道的所有者 |
create_pipe |
text, integer, boolean |
void |
显式创建公共或私有管道。如果private标志为TRUE,则管道创建者被指定为私有管道的所有者 |
next_item_type |
null |
integer |
确定本地消息缓冲区中下一项的数据类型。 |
pack_message |
bigint |
void |
在本地消息缓冲区中生成消息 |
pack_message |
bytea |
void |
在本地消息缓冲区中生成消息 |
pack_message |
date |
void |
在本地消息缓冲区中生成消息 |
pack_message |
integer |
void |
在本地消息缓冲区中生成消息 |
pack_message |
numeric |
void |
在本地消息缓冲区中生成消息 |
pack_message |
record |
void |
在本地消息缓冲区中生成消息 |
pack_message |
text |
void |
在本地消息缓冲区中生成消息 |
pack_message |
timestamp with time zone |
void |
在本地消息缓冲区中生成消息 |
purge |
text |
void |
清空命名管道的内容 |
receive_message |
text |
integer |
将消息复制到本地消息缓冲区。 |
receive_message |
text, integer |
integer |
将消息复制到本地消息缓冲区。 |
remove_pipe |
text |
void |
删除显式创建的管道 |
reset_buffer |
null |
void |
消息重置 |
send_message |
text |
integer |
在命名管道上发送消息 |
send_message |
text, integer |
integer |
在命名管道上发送消息 |
send_message |
text, integer, integer |
integer |
在命名管道上发送消息 |
unique_session_name |
null |
character varying |
接收当前连接到数据库的所有会话中唯一的名称。 |
unpack_message_bytea |
null |
bytea |
从缓冲区检索项 |
unpack_message_date |
null |
date |
从缓冲区检索项 |
unpack_message_number |
null |
numeric |
从缓冲区检索项 |
unpack_message_record |
null |
record |
从缓冲区检索项 |
unpack_message_text |
null |
text |
从缓冲区检索项 |
select dbms_pipe.create_pipe('public_pipe',8192,false);
select dbms_pipe.pack_message('1');
select dbms_pipe.next_item_type();
select dbms_pipe.pack_message('2');
select DBMS_PIPE.SEND_MESSAGE('public_pipe');
select DBMS_PIPE.RECEIVE_MESSAGE('public_pipe');
select DBMS_PIPE.UNPACK_MESSAGE_text();
unpack_message_text
---------------------
1
(1 row)
select DBMS_PIPE.UNPACK_MESSAGE_text();
unpack_message_text
---------------------
2
(1 row)
select DBMS_PIPE.REMOVE_PIPE('public_pipe');