From 4e3cf0c7a4340e13b441ae87c4c7568efe319640 Mon Sep 17 00:00:00 2001 From: Mikhail Chechnev Date: Tue, 25 Dec 2018 13:03:39 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D1=86=D0=B5=D0=B4=D1=83?= =?UTF-8?q?=D1=80=D1=8B=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B2=20=D0=BE=D1=87=D0=B5=D1=80=D0=B5=D0=B4?= =?UTF-8?q?=D1=8C=20(=D0=BF=D0=BE=20=D0=BA=D0=BE=D0=B4=D1=83=20=D1=84?= =?UTF-8?q?=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8=20=D0=B8=20=D0=BF=D0=BE=20?= =?UTF-8?q?=D1=80=D0=B5=D0=B3.=20=D0=BD=D0=BE=D0=BC=D0=B5=D1=80=D1=83=20?= =?UTF-8?q?=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8)=20=D0=B2=D0=BE?= =?UTF-8?q?=D0=B7=D0=B2=D1=80=D0=B0=D1=89=D0=B0=D1=8E=D1=89=D0=B8=D0=B5=20?= =?UTF-8?q?=D1=80=D0=B5=D0=B3.=20=D0=BD=D0=BE=D0=BC=D0=B5=D1=80=20=D0=B4?= =?UTF-8?q?=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=BD=D0=BE=D0=B9=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/PKG_EXS.pck | 65 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 60 insertions(+), 5 deletions(-) diff --git a/db/PKG_EXS.pck b/db/PKG_EXS.pck index 558df7c..1358739 100644 --- a/db/PKG_EXS.pck +++ b/db/PKG_EXS.pck @@ -377,6 +377,15 @@ create or replace package PKG_EXS as /* Помещение сообщения обмена в очередь */ procedure QUEUE_PUT + ( + NEXSSERVICEFN in number, -- Рег. номер функции обработки + BMSG in blob, -- Данные + NEXSQUEUE in number := null, -- Рег. номер связанной позиции очереди + NNEW_EXSQUEUE out number -- Курсор с добавленной позицией очереди + ); + + /* Помещение сообщения обмена в очередь (возвращает курсор с добавленной записью) */ + procedure QUEUE_PUT ( NEXSSERVICEFN in number, -- Рег. номер функции обработки BMSG in blob, -- Данные @@ -386,6 +395,16 @@ create or replace package PKG_EXS as /* Помещение сообщения обмена в очередь (по коду сервиса и функции обрабоки) */ procedure QUEUE_PUT + ( + SEXSSERVICE in varchar2, -- Мнемокод сервиса для обработки + SEXSSERVICEFN in varchar2, -- Мнемокод функции сервиса для обработки + BMSG in blob, -- Данные + NEXSQUEUE in number := null, -- Рег. номер связанной позиции очереди + NNEW_EXSQUEUE out number -- Курсор с добавленной позицией очереди + ); + + /* Помещение сообщения обмена в очередь (по коду сервиса и функции обрабоки, возвращает курсор с добавленной записью) */ + procedure QUEUE_PUT ( SEXSSERVICE in varchar2, -- Мнемокод сервиса для обработки SEXSSERVICEFN in varchar2, -- Мнемокод функции сервиса для обработки @@ -1557,10 +1576,9 @@ create or replace package body PKG_EXS as NEXSSERVICEFN in number, -- Рег. номер функции обработки BMSG in blob, -- Данные NEXSQUEUE in number := null, -- Рег. номер связанной позиции очереди - RCQUEUE out sys_refcursor -- Курсор с добавленной позицией очереди + NNEW_EXSQUEUE out number -- Курсор с добавленной позицией очереди ) is - NRN EXSQUEUE.RN%type; -- Рег. номер добавленной записи очереди begin /* Проверяем параметры */ if (NEXSSERVICEFN is null) then @@ -1577,7 +1595,22 @@ create or replace package body PKG_EXS as BMSG => BMSG, BRESP => null, NEXSQUEUE => NEXSQUEUE, - NRN => NRN); + NRN => NNEW_EXSQUEUE); + end QUEUE_PUT; + + /* Помещение сообщения обмена в очередь (возвращает курсор с добавленной записью) */ + procedure QUEUE_PUT + ( + NEXSSERVICEFN in number, -- Рег. номер функции обработки + BMSG in blob, -- Данные + NEXSQUEUE in number := null, -- Рег. номер связанной позиции очереди + RCQUEUE out sys_refcursor -- Курсор с добавленной позицией очереди + ) + is + NRN EXSQUEUE.RN%type; -- Рег. номер добавленной записи очереди + begin + /* Проверяем параметры */ + QUEUE_PUT(NEXSSERVICEFN => NEXSSERVICEFN, BMSG => BMSG, NEXSQUEUE => NEXSQUEUE, NNEW_EXSQUEUE => NRN); /* Возвращаем добавленную позицию очереди */ QUEUE_GET(NFLAG_SMART => 0, NEXSQUEUE => NRN, RCQUEUE => RCQUEUE); end QUEUE_PUT; @@ -1589,7 +1622,7 @@ create or replace package body PKG_EXS as SEXSSERVICEFN in varchar2, -- Мнемокод функции сервиса для обработки BMSG in blob, -- Данные NEXSQUEUE in number := null, -- Рег. номер связанной позиции очереди - RCQUEUE out sys_refcursor -- Курсор с добавленной позицией очереди + NNEW_EXSQUEUE out number -- Курсор с добавленной позицией очереди ) is NEXSSERVICEFN PKG_STD.TREF; -- Рег. номер функции сервиса обработки @@ -1606,7 +1639,29 @@ create or replace package body PKG_EXS as SEXSSERVICE => SEXSSERVICE, SEXSSERVICEFN => SEXSSERVICEFN); /* Ставим запись в очередь */ - QUEUE_PUT(NEXSSERVICEFN => NEXSSERVICEFN, BMSG => BMSG, NEXSQUEUE => NEXSQUEUE, RCQUEUE => RCQUEUE); + QUEUE_PUT(NEXSSERVICEFN => NEXSSERVICEFN, BMSG => BMSG, NEXSQUEUE => NEXSQUEUE, NNEW_EXSQUEUE => NNEW_EXSQUEUE); + end QUEUE_PUT; + + /* Помещение сообщения обмена в очередь (по коду сервиса и функции обрабоки, возвращает курсор с добавленной записью) */ + procedure QUEUE_PUT + ( + SEXSSERVICE in varchar2, -- Мнемокод сервиса для обработки + SEXSSERVICEFN in varchar2, -- Мнемокод функции сервиса для обработки + BMSG in blob, -- Данные + NEXSQUEUE in number := null, -- Рег. номер связанной позиции очереди + RCQUEUE out sys_refcursor -- Курсор с добавленной позицией очереди + ) + is + NRN EXSQUEUE.RN%type; -- Рег. номер добавленной записи очереди + begin + /* Ставим запись в очередь */ + QUEUE_PUT(SEXSSERVICE => SEXSSERVICE, + SEXSSERVICEFN => SEXSSERVICEFN, + BMSG => BMSG, + NEXSQUEUE => NEXSQUEUE, + NNEW_EXSQUEUE => NRN); + /* Возвращаем добавленную позицию очереди */ + QUEUE_GET(NFLAG_SMART => 0, NEXSQUEUE => NRN, RCQUEUE => RCQUEUE); end QUEUE_PUT; /* Исполнение обработчика для сообщения обмена */