powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / DBMS_PIPE. проблема с чтением из локального буфера
7 сообщений из 7, страница 1 из 1
DBMS_PIPE. проблема с чтением из локального буфера
    #39469918
volnikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте все.
Возникла потребность в использовании DBMS_PIPE.
При изучении соответствующей документации нашёл примеры кода для работы с локальным буфером(запись чтение из одной сессии).

запись
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
SET ECHO ON
SET FEEDBACK ON
SET PAGESIZE 49999
SET SERVEROUTPUT ON SIZE 1000000

DECLARE
   -- Define variables for functions and procedures.
   MESSAGE   VARCHAR2 (30 CHAR);
BEGIN
   -- Assign the unique session name to message.
   MESSAGE := DBMS_PIPE.UNIQUE_SESSION_NAME;
   
   -- Reset the local private pipe.
   DBMS_PIPE.RESET_BUFFER;

   -- Write a message to the local private pipe.
   DBMS_PIPE.PACK_MESSAGE (MESSAGE);

   -- Write what was written to the pipe.
   DBMS_OUTPUT.PUT_LINE ('Written to pipe [' || MESSAGE || ']');
END;
/



чтение
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
SET ECHO ON
SET FEEDBACK ON
SET PAGESIZE 49999
SET SERVEROUTPUT ON SIZE 1000000

-- Define an anonymous block to populate the local private pipe.

DECLARE
   -- Define variables for functions and procedures.
   MESSAGE   VARCHAR2 (30 CHAR);
BEGIN
   -- Read a message from the local private pipe.
   DBMS_PIPE.UNPACK_MESSAGE (MESSAGE);

   -- Print the contents of the message.
   DBMS_OUTPUT.PUT_LINE ('Message [' || MESSAGE || ']');
END;
/



Проблема возникает в чтении.
Error at line 8
ORA-06559: wrong datatype requested, 9, actual datatype is 97
ORA-06512: at "SYS.DBMS_PIPE", line 80
ORA-06512: at line 6

При этом запись и чтение в/из паблик пайпа работает нормально.

Версия Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

Не могу понять в чём ошибка.

Заранее спасибо за помощь.
...
Рейтинг: 0 / 0
DBMS_PIPE. проблема с чтением из локального буфера
    #39469923
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут недопонимание
После PACK надо SEND
Перед UNPACK надо RECIEVE
Using DBMS_PIPE
...
Рейтинг: 0 / 0
DBMS_PIPE. проблема с чтением из локального буфера
    #39469924
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ты думаешь, что LOCAL BUFFER позволяет обойтись без SEND и RECIIVE, то возможно, ты путаешь с DBMS_OUTPUT -- тут пожалуйста, локальный буфер, в одной процедуре положил, в другой прочитал
DBMS_PIPE средство межсессионного взаимодействия, в первую очередь
...
Рейтинг: 0 / 0
DBMS_PIPE. проблема с чтением из локального буфера
    #39469934
volnikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров,

Скрипты из книги Oracle Database 11g PL/SQL Programming. Michael McLaughlin
...
Рейтинг: 0 / 0
DBMS_PIPE. проблема с чтением из локального буфера
    #39469939
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И все же лучше обратиться к официальной документации
...
Рейтинг: 0 / 0
DBMS_PIPE. проблема с чтением из локального буфера
    #39469975
volnikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров,

Ок, и на этом спасибо.
...
Рейтинг: 0 / 0
DBMS_PIPE. проблема с чтением из локального буфера
    #39470013
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну-ну
Я бы посоветовал книжку выбросить в мусор
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / DBMS_PIPE. проблема с чтением из локального буфера
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]