Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / DBMS_PIPE. проблема с чтением из локального буфера / 7 сообщений из 7, страница 1 из 1
10.06.2017, 10:22
    #39469918
volnikh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_PIPE. проблема с чтением из локального буфера
Здравствуйте все.
Возникла потребность в использовании 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
10.06.2017, 11:31
    #39469923
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_PIPE. проблема с чтением из локального буфера
Тут недопонимание
После PACK надо SEND
Перед UNPACK надо RECIEVE
Using DBMS_PIPE
...
Рейтинг: 0 / 0
10.06.2017, 11:35
    #39469924
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_PIPE. проблема с чтением из локального буфера
Если ты думаешь, что LOCAL BUFFER позволяет обойтись без SEND и RECIIVE, то возможно, ты путаешь с DBMS_OUTPUT -- тут пожалуйста, локальный буфер, в одной процедуре положил, в другой прочитал
DBMS_PIPE средство межсессионного взаимодействия, в первую очередь
...
Рейтинг: 0 / 0
10.06.2017, 12:18
    #39469934
volnikh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_PIPE. проблема с чтением из локального буфера
Вячеслав Любомудров,

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

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


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