298 lines
15 KiB
Plaintext
298 lines
15 KiB
Plaintext
create or replace package UDO_PKG_EXS_INV as
|
|
|
|
/* Ýëåêòðîííàÿ èíâåíòàðèçàöèÿ - àóòåíòèôèêàöèÿ */
|
|
procedure CHECKAUTH
|
|
(
|
|
NIDENT in number, -- Èäåíòèôèêàòîð ïðîöåññà
|
|
NEXSQUEUE in number -- Ðåãèñòðàöèîííûé íîìåð îáðàáàòûâàåìîé ïîçèöèè î÷åðåäè îáìåíà
|
|
);
|
|
|
|
/* Ýëåêòðîííàÿ èíâåíòàðèçàöèÿ - ñ÷èòûâàíèå ïîëüçîâàòåëåé */
|
|
procedure GETUSERS
|
|
(
|
|
NIDENT in number, -- Èäåíòèôèêàòîð ïðîöåññà
|
|
NEXSQUEUE in number -- Ðåãèñòðàöèîííûé íîìåð îáðàáàòûâàåìîé ïîçèöèè î÷åðåäè îáìåíà
|
|
);
|
|
|
|
end;
|
|
/
|
|
create or replace package body UDO_PKG_EXS_INV as
|
|
|
|
/* Êîíñòàíòû - òýãè */
|
|
STSD constant varchar2(20) := 'tsd';
|
|
SCHECKAUTHRESPONSE constant varchar2(20) := 'CheckAuthResponse';
|
|
SGETUSERSRESPONSE constant varchar2(20) := 'GetUsersResponse';
|
|
SDEVICEID constant varchar2(20) := 'DeviceID';
|
|
SRESULT constant varchar2(20) := 'Result';
|
|
SSOAPENV constant varchar2(20) := 'soapenv';
|
|
SENVELOPE constant varchar2(20) := 'Envelope';
|
|
SHEADER constant varchar2(20) := 'Header';
|
|
SBODY constant varchar2(20) := 'Body';
|
|
SITEM constant varchar2(20) := 'Item';
|
|
SCODE constant varchar2(20) := 'Code';
|
|
SNAME constant varchar2(20) := 'Name';
|
|
|
|
/* Ñîçäàíèå âåòêè XML */
|
|
function UTL_CREATENODE
|
|
(
|
|
XDOC in DBMS_XMLDOM.DOMDOCUMENT, -- Äîêóìåíò
|
|
STAG in varchar2, -- Íàèìåíîâàíèå òýãà
|
|
SNS in varchar2 default null, -- Ïðîñòðàíñòâî èì¸í
|
|
SVAL in varchar2 default null -- Çíà÷åíèå òýãà
|
|
)
|
|
return DBMS_XMLDOM.DOMNODE -- Ññûëêà íà ñôîðìèðîâàííûé òýã äîêóìåíòà
|
|
is
|
|
XEL DBMS_XMLDOM.DOMELEMENT; -- Ýëåìåíò ïðîñòðàíñòâà èì¸í
|
|
XNODE DBMS_XMLDOM.DOMNODE; -- Ôîðìèðóåìàÿ âåòêà
|
|
XTEXT DBMS_XMLDOM.DOMNODE; -- Òåêñò (çíà÷åíèå) ôîðìèðóåìîé âåòêè
|
|
begin
|
|
/* Åñëè çàäàíî ïðîñòðàíñòâî èì¸í */
|
|
if (SNS is not null) then
|
|
/* Ñîçäà¸ì ýëåìåíò ñ åãî èñïîëüçîâàíèåì */
|
|
XEL := DBMS_XMLDOM.CREATEELEMENT(DOC => XDOC, TAGNAME => STAG, NS => SNS);
|
|
XNODE := DBMS_XMLDOM.MAKENODE(ELEM => XEL);
|
|
DBMS_XMLDOM.SETPREFIX(N => XNODE, PREFIX => SNS);
|
|
else
|
|
/* Èëè áåç íåãî */
|
|
XEL := DBMS_XMLDOM.CREATEELEMENT(DOC => XDOC, TAGNAME => STAG);
|
|
XNODE := DBMS_XMLDOM.MAKENODE(ELEM => XEL);
|
|
end if;
|
|
/* Çíà÷åíèå ðàçìåùàåì â òåêñòîâîé ÷àñòè âåòêè */
|
|
if (SVAL is not null) then
|
|
XTEXT := DBMS_XMLDOM.APPENDCHILD(N => XNODE,
|
|
NEWCHILD => DBMS_XMLDOM.MAKENODE(T => DBMS_XMLDOM.CREATETEXTNODE(DOC => XDOC,
|
|
DATA => SVAL)));
|
|
end if;
|
|
/* Âåðíåì ðåçóëüòàò */
|
|
return XNODE;
|
|
end UTL_CREATENODE;
|
|
|
|
/* Ñ÷èòûâàíèå çíà÷åíèÿ âåòêè XML */
|
|
function UTL_GETNODEVAL
|
|
(
|
|
XROOTNODE in DBMS_XMLDOM.DOMNODE, -- Êîðíåâàÿ âåòêà äëÿ ñ÷èòûâàíèÿ çíà÷åíèÿ
|
|
SPATTERN in varchar2 -- Øàáëîí äëÿ ñ÷èòûâàíèÿ äàííûõ
|
|
)
|
|
return varchar2 -- Ñ÷èòàííîå çíà÷åíèå
|
|
is
|
|
XNODE DBMS_XMLDOM.DOMNODE; -- Èñêîìàÿ âåòêà ñî çíà÷åíèåì (ïîäõîäÿùàÿ ïîä øàáëîí)
|
|
SVAL PKG_STD.TSTRING; -- Ðåçóëüòàò ðàáîòû
|
|
begin
|
|
/* Íàéäåì íóæíóþ âåòêó ïî øàáëîíó */
|
|
XNODE := DBMS_XSLPROCESSOR.SELECTSINGLENODE(N => XROOTNODE, PATTERN => SPATTERN);
|
|
/* Åñëè òàì íåò íè÷åãî */
|
|
if (DBMS_XMLDOM.ISNULL(N => XNODE)) then
|
|
/* Åãî è âåðí¸ì */
|
|
return null;
|
|
end if;
|
|
/* ×òî-òî åñòü - ÷èòàåì äàííûå */
|
|
SVAL := DBMS_XMLDOM.GETNODEVALUE(DBMS_XMLDOM.GETFIRSTCHILD(N => XNODE));
|
|
/* Îòäà¸ì ðåçóëüòàò */
|
|
return SVAL;
|
|
end UTL_GETNODEVAL;
|
|
|
|
/* Ñîçäàíèå äîêóìåíòà äëÿ îòâåòà */
|
|
procedure UTL_CREATERESPONSEDOC
|
|
(
|
|
XDOC out DBMS_XMLDOM.DOMDOCUMENT -- Áóôåð äëÿ äîêóìåíòà
|
|
)
|
|
is
|
|
begin
|
|
/* Ñîçäà¸ì íîâûé äîêóìåíò */
|
|
XDOC := DBMS_XMLDOM.NEWDOMDOCUMENT();
|
|
/* Âûñòàâëÿåì ïàðàìåòðû çàãîëîâêà */
|
|
DBMS_XMLDOM.SETVERSION(DOC => XDOC, VERSION => '1.0" encoding="UTF-8');
|
|
/* Âûñòàâëÿåì êîäèðîâêó */
|
|
DBMS_XMLDOM.SETCHARSET(DOC => XDOC, CHARSET => 'UTF-8');
|
|
end UTL_CREATERESPONSEDOC;
|
|
|
|
/* Ôîðìèðîâíèå îòâåòà íà çàïðîñ èç XML-äîêóìåíòà (îá¸ðòûâàíèå â êîíâåðò ïîäãîòîâëåííûõ äàííûõ) */
|
|
function UTL_CREATERESPONSE
|
|
(
|
|
XDOC in DBMS_XMLDOM.DOMDOCUMENT, -- Äîêóìåíò
|
|
XCONTENT in DBMS_XMLDOM.DOMNODE -- Íàèìåíîâàíèå òýãà ñ îòïðàâëÿåìûì êîíòåíòîì
|
|
) return clob -- Ðåçóëüòàò ðàáîòû
|
|
is
|
|
XMAIN_NODE DBMS_XMLDOM.DOMNODE;
|
|
XENVELOPE_EL DBMS_XMLDOM.DOMELEMENT;
|
|
XENVELOPE DBMS_XMLDOM.DOMNODE;
|
|
XHEADER DBMS_XMLDOM.DOMNODE;
|
|
XBODY DBMS_XMLDOM.DOMNODE;
|
|
XNODE DBMS_XMLDOM.DOMNODE;
|
|
CDATA clob; -- Áóôåð äëÿ ðåçóëüòàòà
|
|
begin
|
|
/* Ïîäãîòîâèì äîêóìåíò */
|
|
XMAIN_NODE := DBMS_XMLDOM.MAKENODE(DOC => XDOC);
|
|
/* Îáåðí¸ì åãî â êîíâåðò */
|
|
XENVELOPE_EL := DBMS_XMLDOM.CREATEELEMENT(DOC => XDOC, TAGNAME => SENVELOPE, NS => SSOAPENV);
|
|
DBMS_XMLDOM.SETATTRIBUTE(ELEM => XENVELOPE_EL,
|
|
name => 'xmlns:soapenv',
|
|
NEWVALUE => 'http://schemas.xmlsoap.org/soap/envelope/');
|
|
DBMS_XMLDOM.SETATTRIBUTE(ELEM => XENVELOPE_EL,
|
|
name => 'xmlns:tsd',
|
|
NEWVALUE => 'http://www.example.org/TSDService/');
|
|
XENVELOPE := DBMS_XMLDOM.MAKENODE(ELEM => XENVELOPE_EL);
|
|
DBMS_XMLDOM.SETPREFIX(N => XENVELOPE, PREFIX => SSOAPENV);
|
|
XENVELOPE := DBMS_XMLDOM.APPENDCHILD(N => XMAIN_NODE, NEWCHILD => XENVELOPE);
|
|
/* Ñôîðìèðóåì çàãîëîâîê */
|
|
XHEADER := UTL_CREATENODE(XDOC => XDOC, STAG => SHEADER, SNS => SSOAPENV);
|
|
XHEADER := DBMS_XMLDOM.APPENDCHILD(N => XENVELOPE, NEWCHILD => XHEADER);
|
|
/* Ñôîðìèðóåì òåëî */
|
|
XBODY := UTL_CREATENODE(XDOC => XDOC, STAG => SBODY, SNS => SSOAPENV);
|
|
XBODY := DBMS_XMLDOM.APPENDCHILD(N => XENVELOPE, NEWCHILD => XBODY);
|
|
XNODE := DBMS_XMLDOM.APPENDCHILD(N => XBODY, NEWCHILD => XCONTENT);
|
|
/* Êîíâåðòèðóåì â CLOB */
|
|
DBMS_LOB.CREATETEMPORARY(LOB_LOC => CDATA, CACHE => true, DUR => DBMS_LOB.SESSION);
|
|
DBMS_XMLDOM.WRITETOCLOB(DOC => XDOC, CL => CDATA, CHARSET => 'UTF-8');
|
|
DBMS_XMLDOM.FREEDOCUMENT(DOC => XDOC);
|
|
/* Âåðíåì ðåçóëüòàò */
|
|
return CDATA;
|
|
end UTL_CREATERESPONSE;
|
|
|
|
/* Ýëåêòðîííàÿ èíâåíòàðèçàöèÿ - àóòåíòèôèêàöèÿ */
|
|
procedure CHECKAUTH
|
|
(
|
|
NIDENT in number, -- Èäåíòèôèêàòîð ïðîöåññà
|
|
NEXSQUEUE in number -- Ðåãèñòðàöèîííûé íîìåð îáðàáàòûâàåìîé ïîçèöèè î÷åðåäè îáìåíà
|
|
)
|
|
is
|
|
REXSQUEUE EXSQUEUE%rowtype; -- Çàïèñü ïîçèöèè î÷åðåäè
|
|
XCHECKAUTHRESPONSE DBMS_XMLDOM.DOMNODE; -- Êîðíåâîé ýëåìåíò îòâåòà
|
|
XRESULT DBMS_XMLDOM.DOMNODE; -- Ðåçóëüòàò àóòåíòèôèêàöèè
|
|
XNODE DBMS_XMLDOM.DOMNODE; -- Áóôåð äëÿ âåòêè îòâåòà
|
|
XDOC DBMS_XMLDOM.DOMDOCUMENT; -- Äîêóìåíò
|
|
XMLPARCER DBMS_XMLPARSER.PARSER; -- Ïàðñåð
|
|
XENVELOPE DBMS_XMLDOM.DOMNODE; -- Êîíâåðò
|
|
XBODY DBMS_XMLDOM.DOMNODE; -- Òåëî äîêóìåíòà
|
|
XNODELIST DBMS_XMLDOM.DOMNODELIST; -- Âåòêè òåëà äîêóìåíòà
|
|
XNODE_ROOT DBMS_XMLDOM.DOMNODE; -- Êîðíåâîé ýëåìåíò ïåðâîé âåòêè òåëà äîêóìåíòà
|
|
CRESPONSE clob; -- Áóôåð äëÿ îòâåòà
|
|
CREQ clob; -- Áóôåð äëÿ çàïðîñà
|
|
SREQDEVICEID varchar2(30); -- Èäåíòèôèêàòîð óñòðîéñòâà èç çàïðîñà
|
|
begin
|
|
/* Ñ÷èòàåì çàïèñü î÷åðåäè */
|
|
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
|
|
/* Âîçüìåì òåêñò çàïðîñà */
|
|
CREQ := BLOB2CLOB(LBDATA => REXSQUEUE.MSG);
|
|
/* Ñîçäàåì èíñòàíñ XML ïàðñåðà */
|
|
XMLPARCER := DBMS_XMLPARSER.NEWPARSER;
|
|
/* Ðàçáèðàåì XML èç çàïðîñà */
|
|
DBMS_XMLPARSER.PARSECLOB(P => XMLPARCER, DOC => CREQ);
|
|
/* Áåðåì XML äîêóìåíò èç ðàçîáðàííîãî */
|
|
XDOC := DBMS_XMLPARSER.GETDOCUMENT(P => XMLPARCER);
|
|
/* Ñ÷èòûâàåì êîðíåâîé ýëåìåíò */
|
|
XENVELOPE := DBMS_XMLDOM.MAKENODE(ELEM => DBMS_XMLDOM.GETDOCUMENTELEMENT(DOC => XDOC));
|
|
/* Ñ÷èòûâàåì ýëåìåíò òåëî */
|
|
XBODY := DBMS_XSLPROCESSOR.SELECTSINGLENODE(N => XENVELOPE, PATTERN => SBODY);
|
|
/* Ñ÷èòûâàåì äî÷åðíèå ýëåìåíòû òåëà */
|
|
XNODELIST := DBMS_XMLDOM.GETCHILDNODES(N => XBODY);
|
|
/* Áåðåì ïåðâûé äî÷åðíèé ýëåìåíò */
|
|
XNODE_ROOT := DBMS_XMLDOM.ITEM(NL => XNODELIST, IDX => 0);
|
|
/* Ñ÷èòûâàåì èäåíòèôèêàòîð óñòðîéñòâà */
|
|
SREQDEVICEID := UTL_GETNODEVAL(XROOTNODE => XNODE_ROOT, SPATTERN => SDEVICEID);
|
|
/* Êîíòðîëü èíäåòèôèêàòîðà óñòðîéñòâà ïî ëèöåíçèè */
|
|
/* UTL_CHECK_DEVICEID(SDEVICEID => SREQDEVICEID); */
|
|
/* Ïîäãîòàâëèâàåì äîêóìåíò äëÿ îòâåòà */
|
|
UTL_CREATERESPONSEDOC(XDOC => XDOC);
|
|
/* Âìåñòî ïðîâåðêè ïî ëèöåíçèè - ïîêà ïðîñòî ïðîâåðêà íà òî, ÷òî èäåíòèôèêàòîð óñòðîéñòâà áûë ïåðåäàí */
|
|
if (SREQDEVICEID is not null) then
|
|
/* Ò.ê. ïîêà ïðîâåðîê íåò íèêàêèõ - âñåãäà âîçâðàùàåì ïîëîæèòåëüíûé îòâåò */
|
|
XCHECKAUTHRESPONSE := UTL_CREATENODE(XDOC => XDOC, STAG => SCHECKAUTHRESPONSE, SNS => STSD);
|
|
XRESULT := UTL_CREATENODE(XDOC => XDOC, STAG => SRESULT, SNS => STSD, SVAL => 'true');
|
|
XNODE := DBMS_XMLDOM.APPENDCHILD(N => XCHECKAUTHRESPONSE, NEWCHILD => XRESULT);
|
|
/* Îáîðà÷èâàåì åãî â êîíâåðò */
|
|
CRESPONSE := UTL_CREATERESPONSE(XDOC => XDOC, XCONTENT => XCHECKAUTHRESPONSE);
|
|
end if;
|
|
/* Âîçâðàùàåì îòâåò */
|
|
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT,
|
|
SRESULT => PKG_EXS.SPRC_RESP_RESULT_OK,
|
|
BRESP => CLOB2BLOB(LCDATA => CRESPONSE, SCHARSET => 'UTF8'));
|
|
exception
|
|
when others then
|
|
/* Âåðí¸ì îøèáêó */
|
|
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT, SRESULT => PKG_EXS.SPRC_RESP_RESULT_ERR, SMSG => sqlerrm);
|
|
end CHECKAUTH;
|
|
|
|
/* Ýëåêòðîííàÿ èíâåíòàðèçàöèÿ - ñ÷èòûâàíèå ïîëüçîâàòåëåé */
|
|
procedure GETUSERS
|
|
(
|
|
NIDENT in number, -- Èäåíòèôèêàòîð ïðîöåññà
|
|
NEXSQUEUE in number -- Ðåãèñòðàöèîííûé íîìåð îáðàáàòûâàåìîé ïîçèöèè î÷åðåäè îáìåíà
|
|
)
|
|
is
|
|
REXSQUEUE EXSQUEUE%rowtype; -- Çàïèñü ïîçèöèè î÷åðåäè
|
|
XGETUSERSRESPONSE DBMS_XMLDOM.DOMNODE; -- Êîðíåâîé ýëåìåíò îòâåòà
|
|
XNODE DBMS_XMLDOM.DOMNODE; -- Áóôåð äëÿ âåòêè îòâåòà
|
|
XITEM DBMS_XMLDOM.DOMNODE; -- Ýëåìåíò îòâåòíîãî ñïèñêà
|
|
XCODE DBMS_XMLDOM.DOMNODE; -- Êîä ýëåìåíòà îòâåòíîãî ñïèñêà
|
|
XNAME DBMS_XMLDOM.DOMNODE; -- Íèìåíîâàíèå ýëåìåíòà îòâåòíîãî ñïèñêà
|
|
XDOC DBMS_XMLDOM.DOMDOCUMENT; -- Äîêóìåíò
|
|
XMLPARCER DBMS_XMLPARSER.PARSER; -- Ïàðñåð
|
|
XENVELOPE DBMS_XMLDOM.DOMNODE; -- Êîíâåðò
|
|
XBODY DBMS_XMLDOM.DOMNODE; -- Òåëî äîêóìåíòà
|
|
XNODELIST DBMS_XMLDOM.DOMNODELIST; -- Âåòêè òåëà äîêóìåíòà
|
|
XNODE_ROOT DBMS_XMLDOM.DOMNODE; -- Êîðíåâîé ýëåìåíò ïåðâîé âåòêè òåëà äîêóìåíòà
|
|
CRESPONSE clob; -- Áóôåð äëÿ îòâåòà
|
|
CREQ clob; -- Áóôåð äëÿ çàïðîñà
|
|
SREQDEVICEID varchar2(30); -- Èäåíòèôèêàòîð óñòðîéñòâà èç çàïðîñà
|
|
begin
|
|
/* Ñ÷èòàåì çàïèñü î÷åðåäè */
|
|
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
|
|
/* Âîçüìåì òåêñò çàïðîñà */
|
|
CREQ := BLOB2CLOB(LBDATA => REXSQUEUE.MSG);
|
|
/* Ñîçäàåì èíñòàíñ XML ïàðñåðà */
|
|
XMLPARCER := DBMS_XMLPARSER.NEWPARSER;
|
|
/* Ðàçáèðàåì XML èç çàïðîñà */
|
|
DBMS_XMLPARSER.PARSECLOB(P => XMLPARCER, DOC => CREQ);
|
|
/* Áåðåì XML äîêóìåíò èç ðàçîáðàííîãî */
|
|
XDOC := DBMS_XMLPARSER.GETDOCUMENT(P => XMLPARCER);
|
|
/* Ñ÷èòûâàåì êîðíåâîé ýëåìåíò */
|
|
XENVELOPE := DBMS_XMLDOM.MAKENODE(ELEM => DBMS_XMLDOM.GETDOCUMENTELEMENT(DOC => XDOC));
|
|
/* Ñ÷èòûâàåì ýëåìåíò òåëî */
|
|
XBODY := DBMS_XSLPROCESSOR.SELECTSINGLENODE(N => XENVELOPE, PATTERN => SBODY);
|
|
/* Ñ÷èòûâàåì äî÷åðíèå ýëåìåíòû òåëà */
|
|
XNODELIST := DBMS_XMLDOM.GETCHILDNODES(N => XBODY);
|
|
/* Áåðåì ïåðâûé äî÷åðíèé ýëåìåíò */
|
|
XNODE_ROOT := DBMS_XMLDOM.ITEM(NL => XNODELIST, IDX => 0);
|
|
/* Ñ÷èòûâàåì èäåíòèôèêàòîð óñòðîéñòâà */
|
|
SREQDEVICEID := UTL_GETNODEVAL(XROOTNODE => XNODE_ROOT, SPATTERN => SDEVICEID);
|
|
/* Êîíòðîëü èíäåòèôèêàòîðà óñòðîéñòâà ïî ëèöåíçèè */
|
|
/* UTL_CHECK_DEVICEID(SDEVICEID => SREQDEVICEID); */
|
|
/* Ïîäãîòàâëèâàåì äîêóìåíò äëÿ îòâåòà */
|
|
UTL_CREATERESPONSEDOC(XDOC => XDOC);
|
|
/* Âìåñòî ïðîâåðêè ïî ëèöåíçèè - ïîêà ïðîñòî ïðîâåðêà íà òî, ÷òî èäåíòèôèêàòîð óñòðîéñòâà áûë ïåðåäàí */
|
|
if (SREQDEVICEID is not null) then
|
|
/* Ñîçäà¸ì ïðîñòðàíñòâî èì¸í äëÿ îòâåòà */
|
|
XGETUSERSRESPONSE := UTL_CREATENODE(XDOC => XDOC, STAG => SGETUSERSRESPONSE, SNS => STSD);
|
|
/* Îáõîäèì ñîòðóäíèêîâ-èíâåíòàðèçàòîðîâ */
|
|
for REC in (select T.RN,
|
|
A.AGNABBR
|
|
from INVPERSONS T,
|
|
AGNLIST A
|
|
where T.COMPANY = 136018
|
|
and T.AGNLIST = A.RN)
|
|
loop
|
|
/* Ñîáèðàåì èíôîðìàöèþ ïî ñîòðóäíèêó â îòâåò */
|
|
XITEM := UTL_CREATENODE(XDOC => XDOC, STAG => SITEM, SNS => STSD);
|
|
XCODE := UTL_CREATENODE(XDOC => XDOC, STAG => SCODE, SNS => STSD, SVAL => REC.RN);
|
|
XNAME := UTL_CREATENODE(XDOC => XDOC, STAG => SNAME, SNS => STSD, SVAL => REC.AGNABBR);
|
|
XNODE := DBMS_XMLDOM.APPENDCHILD(N => XITEM, NEWCHILD => XCODE);
|
|
XNODE := DBMS_XMLDOM.APPENDCHILD(N => XITEM, NEWCHILD => XNAME);
|
|
XNODE := DBMS_XMLDOM.APPENDCHILD(N => XGETUSERSRESPONSE, NEWCHILD => XITEM);
|
|
end loop;
|
|
/* Îáîðà÷èâàåì îòâåò â êîíâåðò */
|
|
CRESPONSE := UTL_CREATERESPONSE(XDOC => XDOC, XCONTENT => XGETUSERSRESPONSE);
|
|
end if;
|
|
/* Âîçâðàùàåì îòâåò */
|
|
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT,
|
|
SRESULT => PKG_EXS.SPRC_RESP_RESULT_OK,
|
|
BRESP => CLOB2BLOB(LCDATA => CRESPONSE, SCHARSET => 'UTF8'));
|
|
exception
|
|
when others then
|
|
/* Âåðí¸ì îøèáêó */
|
|
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT, SRESULT => PKG_EXS.SPRC_RESP_RESULT_ERR, SMSG => sqlerrm);
|
|
end GETUSERS;
|
|
|
|
end;
|
|
/
|