forked from CITKParus/P8-ExchangeService
Модификация алгоритмов разбора поискового запроса и поиска в системе
This commit is contained in:
parent
9c39977e40
commit
20aafa59f4
@ -145,6 +145,10 @@ create or replace package body UDO_PKG_EXS_ALICE as
|
|||||||
HELPER_PATTERNS(HELPER_PATTERNS.LAST) := 'ÿ';
|
HELPER_PATTERNS(HELPER_PATTERNS.LAST) := 'ÿ';
|
||||||
HELPER_PATTERNS.EXTEND();
|
HELPER_PATTERNS.EXTEND();
|
||||||
HELPER_PATTERNS(HELPER_PATTERNS.LAST) := 'ñ';
|
HELPER_PATTERNS(HELPER_PATTERNS.LAST) := 'ñ';
|
||||||
|
HELPER_PATTERNS.EXTEND();
|
||||||
|
HELPER_PATTERNS(HELPER_PATTERNS.LAST) := 'íàéòè';
|
||||||
|
HELPER_PATTERNS.EXTEND();
|
||||||
|
HELPER_PATTERNS(HELPER_PATTERNS.LAST) := 'ìîæíî';
|
||||||
end UTL_HELPER_INIT_COMMON;
|
end UTL_HELPER_INIT_COMMON;
|
||||||
|
|
||||||
/* Ïîäãîòîâêà ïîèñêîâîé ôðàçû ê ó÷àñòèþ â âûáîðêå */
|
/* Ïîäãîòîâêà ïîèñêîâîé ôðàçû ê ó÷àñòèþ â âûáîðêå */
|
||||||
@ -158,36 +162,49 @@ create or replace package body UDO_PKG_EXS_ALICE as
|
|||||||
is
|
is
|
||||||
SRES varchar2(32000); -- Ðåçóëüòàò ðàáîòû
|
SRES varchar2(32000); -- Ðåçóëüòàò ðàáîòû
|
||||||
begin
|
begin
|
||||||
/* Îáõîäèì ñëîâà ïîèñêîâîé ôðàçû */
|
/* Åñëè ïîèñêîâàÿ ôðàçà çàäàíà */
|
||||||
for W in (select REGEXP_SUBSTR(T.STR, '[^' || SDELIM || ']+', 1, level) SWRD
|
if (SSEARCH_STR is not null) then
|
||||||
from (select replace(replace(replace(replace(replace(replace(replace(replace(replace(SSEARCH_STR, ',', ''),
|
/* Îáõîäèì ñëîâà ïîèñêîâîé ôðàçû */
|
||||||
'.',
|
for W in (select REGEXP_SUBSTR(T.STR, '[^' || SDELIM || ']+', 1, level) SWRD
|
||||||
''),
|
from (select replace(replace(replace(replace(replace(replace(replace(replace(replace(SSEARCH_STR,
|
||||||
'/',
|
',',
|
||||||
''),
|
''),
|
||||||
'\',
|
'.',
|
||||||
''),
|
''),
|
||||||
'''',
|
'/',
|
||||||
''),
|
''),
|
||||||
'"',
|
'\',
|
||||||
''),
|
''),
|
||||||
':',
|
'''',
|
||||||
''),
|
''),
|
||||||
'?',
|
'"',
|
||||||
''),
|
''),
|
||||||
'!',
|
':',
|
||||||
'') STR
|
''),
|
||||||
from DUAL) T
|
'?',
|
||||||
connect by INSTR(T.STR, SDELIM, 1, level - 1) > 0)
|
''),
|
||||||
loop
|
'!',
|
||||||
/* Åñëè ñëîâî íå â ñïèñêå âñïîìîãàòåëüíûõ */
|
'') STR
|
||||||
if (not UTL_HELPER_CHECK(SWORD => W.SWRD, HELPER_PATTERNS => HELPER_PATTERNS)) then
|
from DUAL) T
|
||||||
/* Îñòàâëÿåì åãî â èòîãîâîé âûáîðêå */
|
connect by INSTR(T.STR, SDELIM, 1, level - 1) > 0)
|
||||||
SRES := SRES || '%' || W.SWRD;
|
loop
|
||||||
|
/* Åñëè ñëîâî íå â ñïèñêå âñïîìîãàòåëüíûõ */
|
||||||
|
if (not UTL_HELPER_CHECK(SWORD => W.SWRD, HELPER_PATTERNS => HELPER_PATTERNS)) then
|
||||||
|
/* Îñòàâëÿåì åãî â èòîãîâîé âûáîðêå */
|
||||||
|
SRES := SRES || '%' || W.SWRD;
|
||||||
|
end if;
|
||||||
|
end loop;
|
||||||
|
/* Óáåðåì ëèøíèå ïðîáåëû è ãîòîâèì äëÿ ïîèñêà */
|
||||||
|
SRES := '%' || trim(SRES) || '%';
|
||||||
|
/* Ïðîâåðèì, ÷òî õîòü êàêàÿ-òî çàöåïêà îñòàëîñü äëÿ ïîèñêà */
|
||||||
|
if (replace(SRES, '%', '') is null) then
|
||||||
|
/* Èñêàòü âñ¸ ïðîäðÿä - íå âåðíî, ñ÷èòàåì ÷òî ïîèñêîâîé ôðàçû íåò */
|
||||||
|
SRES := null;
|
||||||
end if;
|
end if;
|
||||||
end loop;
|
else
|
||||||
/* Óáåðåì ëèøíèå ïðîáåëû è ãîòîâèì äëÿ ïîèñêà */
|
/* Íåò ïîèñêîâîé ôðàçû - íåò ðåçóëüòàòà */
|
||||||
SRES := '%' || trim(SRES) || '%';
|
SRES := null;
|
||||||
|
end if;
|
||||||
/* Âåðíåì îòâåò */
|
/* Âåðíåì îòâåò */
|
||||||
return SRES;
|
return SRES;
|
||||||
end UTL_SEARCH_STR_PREPARE;
|
end UTL_SEARCH_STR_PREPARE;
|
||||||
@ -215,12 +232,12 @@ create or replace package body UDO_PKG_EXS_ALICE as
|
|||||||
HELPER_PATTERNS(HELPER_PATTERNS.LAST) := 'êîíòðàãåíò%';
|
HELPER_PATTERNS(HELPER_PATTERNS.LAST) := 'êîíòðàãåíò%';
|
||||||
/* Çàáèðàåì äàííûå ñîîáùåíèÿ è êîíâåðòèðóåì â êîäèðîâêó ÁÄ */
|
/* Çàáèðàåì äàííûå ñîîáùåíèÿ è êîíâåðòèðóåì â êîäèðîâêó ÁÄ */
|
||||||
CTMP := BLOB2CLOB(LBDATA => REXSQUEUE.MSG, SCHARSET => 'UTF8');
|
CTMP := BLOB2CLOB(LBDATA => REXSQUEUE.MSG, SCHARSET => 'UTF8');
|
||||||
/* Êëàä¸ì êîíâåðòèðîâàííîå îáðàòíî (ïðîñòî äëÿ óäîáñòâà ìîíèòîðèíãà) */
|
/* Ïîäãîòîâèì ïîèñêîâóþ ôðàçó */
|
||||||
PKG_EXS.QUEUE_MSG_SET(NEXSQUEUE => REXSQUEUE.RN, BMSG => CLOB2BLOB(LCDATA => CTMP), RCQUEUE => RCTMP);
|
CTMP := UTL_SEARCH_STR_PREPARE(SSEARCH_STR => CTMP, SDELIM => ' ', HELPER_PATTERNS => HELPER_PATTERNS);
|
||||||
/* Åñëè åñòü ÷òî èñêàòü */
|
/* Åñëè åñòü ÷òî èñêàòü */
|
||||||
if (CTMP is not null) then
|
if (CTMP is not null) then
|
||||||
/* Ïîäãîòîâèì ïîèñêîâóþ ôðàçó */
|
/* Êëàä¸ì êîíâåðòèðîâàííîå îáðàòíî (ïðîñòî äëÿ óäîáñòâà ìîíèòîðèíãà) */
|
||||||
CTMP := UTL_SEARCH_STR_PREPARE(SSEARCH_STR => CTMP, SDELIM => ' ', HELPER_PATTERNS => HELPER_PATTERNS);
|
PKG_EXS.QUEUE_MSG_SET(NEXSQUEUE => REXSQUEUE.RN, BMSG => CLOB2BLOB(LCDATA => CTMP), RCQUEUE => RCTMP);
|
||||||
/* Èíèöèàëèçèðóåì îòâåò */
|
/* Èíèöèàëèçèðóåì îòâåò */
|
||||||
CRESP := 'Êîíòðàãåíò íå íàéäåí';
|
CRESP := 'Êîíòðàãåíò íå íàéäåí';
|
||||||
/* Èùåì çàïðîøåííîãî êîíòðàãåíòà */
|
/* Èùåì çàïðîøåííîãî êîíòðàãåíòà */
|
||||||
@ -234,9 +251,14 @@ create or replace package body UDO_PKG_EXS_ALICE as
|
|||||||
T.AGN_COMMENT SCONTACT_PERSON
|
T.AGN_COMMENT SCONTACT_PERSON
|
||||||
from AGNLIST T,
|
from AGNLIST T,
|
||||||
ACATALOG CAT
|
ACATALOG CAT
|
||||||
where ((LOWER(T.AGNABBR) like LOWER(CTMP)) or (LOWER(T.AGNNAME) like LOWER(CTMP)) or
|
where ((LOWER(CTMP) like LOWER('%' || replace(T.AGNABBR, ' ', '%') || '%')) or
|
||||||
(LOWER(T.AGNFAMILYNAME_AC) like LOWER(CTMP)) or (LOWER(T.AGNFAMILYNAME_ABL) like LOWER(CTMP)) or
|
(LOWER(CTMP) like LOWER('%' || replace(T.AGNNAME, ' ', '%') || '%')) or
|
||||||
(LOWER(T.AGNFAMILYNAME_TO) like LOWER(CTMP)) or (LOWER(T.AGNFAMILYNAME_FR) like LOWER(CTMP)))
|
((T.AGNFAMILYNAME is not null) and (LOWER(CTMP) like LOWER('%' || T.AGNFAMILYNAME || '%'))) or
|
||||||
|
((T.AGNFAMILYNAME_AC is not null) and (LOWER(CTMP) like LOWER('%' || T.AGNFAMILYNAME_AC || '%'))) or
|
||||||
|
((T.AGNFAMILYNAME_ABL is not null) and
|
||||||
|
(LOWER(CTMP) like LOWER('%' || T.AGNFAMILYNAME_ABL || '%'))) or
|
||||||
|
((T.AGNFAMILYNAME_TO is not null) and (LOWER(CTMP) like LOWER('%' || T.AGNFAMILYNAME_TO || '%'))) or
|
||||||
|
((T.AGNFAMILYNAME_FR is not null) and (LOWER(CTMP) like LOWER('%' || T.AGNFAMILYNAME_FR || '%'))))
|
||||||
and T.CRN = CAT.RN
|
and T.CRN = CAT.RN
|
||||||
and CAT.NAME = SSEARCH_CATALOG_NAME
|
and CAT.NAME = SSEARCH_CATALOG_NAME
|
||||||
and ROWNUM <= 1)
|
and ROWNUM <= 1)
|
||||||
@ -267,7 +289,7 @@ create or replace package body UDO_PKG_EXS_ALICE as
|
|||||||
end if;
|
end if;
|
||||||
end loop;
|
end loop;
|
||||||
else
|
else
|
||||||
CRESP := 'Íå óêàçàí ïîèñêîâûé çàïðîñ';
|
CRESP := 'Íå ïîíÿòíî êàêîãî êîíòðàãåíòà Âû õîòèòå íàéòè, èçâèíèòå...';
|
||||||
end if;
|
end if;
|
||||||
/* Âîçâðàùàåì îòâåò */
|
/* Âîçâðàùàåì îòâåò */
|
||||||
PKG_EXS.PRC_RESP_ARG_BLOB_SET(NIDENT => NIDENT,
|
PKG_EXS.PRC_RESP_ARG_BLOB_SET(NIDENT => NIDENT,
|
||||||
@ -298,12 +320,12 @@ create or replace package body UDO_PKG_EXS_ALICE as
|
|||||||
HELPER_PATTERNS(HELPER_PATTERNS.LAST) := 'äîãîâîð%';
|
HELPER_PATTERNS(HELPER_PATTERNS.LAST) := 'äîãîâîð%';
|
||||||
/* Çàáèðàåì äàííûå ñîîáùåíèÿ è êîíâåðòèðóåì â êîäèðîâêó ÁÄ */
|
/* Çàáèðàåì äàííûå ñîîáùåíèÿ è êîíâåðòèðóåì â êîäèðîâêó ÁÄ */
|
||||||
CTMP := BLOB2CLOB(LBDATA => REXSQUEUE.MSG, SCHARSET => 'UTF8');
|
CTMP := BLOB2CLOB(LBDATA => REXSQUEUE.MSG, SCHARSET => 'UTF8');
|
||||||
/* Êëàä¸ì êîíâåðòèðîâàííîå îáðàòíî (ïðîñòî äëÿ óäîáñòâà ìîíèòîðèíãà) */
|
/* Ïîäãîòîâèì ïîèñêîâóþ ôðàçó */
|
||||||
PKG_EXS.QUEUE_MSG_SET(NEXSQUEUE => REXSQUEUE.RN, BMSG => CLOB2BLOB(LCDATA => CTMP), RCQUEUE => RCTMP);
|
CTMP := UTL_SEARCH_STR_PREPARE(SSEARCH_STR => CTMP, SDELIM => ' ', HELPER_PATTERNS => HELPER_PATTERNS);
|
||||||
/* Åñëè åñòü ÷òî èñêàòü */
|
/* Åñëè åñòü ÷òî èñêàòü */
|
||||||
if (CTMP is not null) then
|
if (CTMP is not null) then
|
||||||
/* Ïîäãîòîâèì ïîèñêîâóþ ôðàçó */
|
/* Êëàä¸ì êîíâåðòèðîâàííîå îáðàòíî (ïðîñòî äëÿ óäîáñòâà ìîíèòîðèíãà) */
|
||||||
CTMP := UTL_SEARCH_STR_PREPARE(SSEARCH_STR => CTMP, SDELIM => ' ', HELPER_PATTERNS => HELPER_PATTERNS);
|
PKG_EXS.QUEUE_MSG_SET(NEXSQUEUE => REXSQUEUE.RN, BMSG => CLOB2BLOB(LCDATA => CTMP), RCQUEUE => RCTMP);
|
||||||
/* Èíèöèàëèçèðóåì îòâåò */
|
/* Èíèöèàëèçèðóåì îòâåò */
|
||||||
CRESP := 'Äîãîâîð íå íàéäåí';
|
CRESP := 'Äîãîâîð íå íàéäåí';
|
||||||
/* Èùåì çàïðîøåííûé äîãîâîð */
|
/* Èùåì çàïðîøåííûé äîãîâîð */
|
||||||
@ -320,8 +342,8 @@ create or replace package body UDO_PKG_EXS_ALICE as
|
|||||||
AGNLIST AG,
|
AGNLIST AG,
|
||||||
CURNAMES CN,
|
CURNAMES CN,
|
||||||
ACATALOG CAT
|
ACATALOG CAT
|
||||||
where ((LOWER(T.EXT_NUMBER) like LOWER(CTMP)) or
|
where ((LOWER(CTMP) like LOWER('%' || T.EXT_NUMBER || '%')) or
|
||||||
(LOWER(trim(T.DOC_NUMB)) like LOWER(CTMP)))
|
(LOWER(CTMP) like LOWER('%' || trim(T.DOC_NUMB) || '%')))
|
||||||
and T.AGENT = AG.RN
|
and T.AGENT = AG.RN
|
||||||
and T.CURRENCY = CN.RN
|
and T.CURRENCY = CN.RN
|
||||||
and T.CRN = CAT.RN
|
and T.CRN = CAT.RN
|
||||||
@ -368,7 +390,7 @@ create or replace package body UDO_PKG_EXS_ALICE as
|
|||||||
end if;
|
end if;
|
||||||
end loop;
|
end loop;
|
||||||
else
|
else
|
||||||
CRESP := 'Íå óêàçàí ïîèñêîâûé çàïðîñ';
|
CRESP := 'Íå ïîíÿòíî êàêîé äîãîâîð Âû õîòèòå íàéòè, èçâèíèòå...';
|
||||||
end if;
|
end if;
|
||||||
/* Âîçâðàùàåì îòâåò */
|
/* Âîçâðàùàåì îòâåò */
|
||||||
PKG_EXS.PRC_RESP_ARG_BLOB_SET(NIDENT => NIDENT,
|
PKG_EXS.PRC_RESP_ARG_BLOB_SET(NIDENT => NIDENT,
|
||||||
@ -400,16 +422,16 @@ create or replace package body UDO_PKG_EXS_ALICE as
|
|||||||
HELPER_PATTERNS(HELPER_PATTERNS.LAST) := 'çàêàç%';
|
HELPER_PATTERNS(HELPER_PATTERNS.LAST) := 'çàêàç%';
|
||||||
/* Çàáèðàåì äàííûå ñîîáùåíèÿ è êîíâåðòèðóåì â êîäèðîâêó ÁÄ */
|
/* Çàáèðàåì äàííûå ñîîáùåíèÿ è êîíâåðòèðóåì â êîäèðîâêó ÁÄ */
|
||||||
CTMP := BLOB2CLOB(LBDATA => REXSQUEUE.MSG, SCHARSET => 'UTF8');
|
CTMP := BLOB2CLOB(LBDATA => REXSQUEUE.MSG, SCHARSET => 'UTF8');
|
||||||
/* Êëàä¸ì êîíâåðòèðîâàííîå îáðàòíî (ïðîñòî äëÿ óäîáñòâà ìîíèòîðèíãà) */
|
/* Ïîäãîòîâèì ïîèñêîâóþ ôðàçó */
|
||||||
PKG_EXS.QUEUE_MSG_SET(NEXSQUEUE => REXSQUEUE.RN, BMSG => CLOB2BLOB(LCDATA => CTMP), RCQUEUE => RCTMP);
|
CTMP := UTL_SEARCH_STR_PREPARE(SSEARCH_STR => CTMP, SDELIM => ' ', HELPER_PATTERNS => HELPER_PATTERNS);
|
||||||
/* Åñëè åñòü ÷òî èñêàòü */
|
/* Åñëè åñòü ÷òî èñêàòü */
|
||||||
if (CTMP is not null) then
|
if (CTMP is not null) then
|
||||||
/* Ïîäãîòîâèì ïîèñêîâóþ ôðàçó */
|
/* Êëàä¸ì êîíâåðòèðîâàííîå îáðàòíî (ïðîñòî äëÿ óäîáñòâà ìîíèòîðèíãà) */
|
||||||
CTMP := UTL_SEARCH_STR_PREPARE(SSEARCH_STR => CTMP, SDELIM => ' ', HELPER_PATTERNS => HELPER_PATTERNS);
|
PKG_EXS.QUEUE_MSG_SET(NEXSQUEUE => REXSQUEUE.RN, BMSG => CLOB2BLOB(LCDATA => CTMP), RCQUEUE => RCTMP);
|
||||||
/* Èíèöèàëèçèðóåì îòâåò */
|
/* Èíèöèàëèçèðóåì îòâåò */
|
||||||
CRESP := 'Çàêàç íå íàéäåí';
|
CRESP := 'Çàêàç íå íàéäåí';
|
||||||
/* Èùåì çàïðîøåííûé çàêàç */
|
/* Èùåì çàïðîøåííûé çàêàç */
|
||||||
for C in (select 'Çàêàç ¹' || trim(T.ORD_NUMB) || ' îò ' || TO_CHAR(T.ORD_DATE, 'dd.mm.yyyy') SDOC,
|
for C in (select 'Âàø çàêàç ¹' || trim(T.ORD_NUMB) || ' îò ' || TO_CHAR(T.ORD_DATE, 'dd.mm.yyyy') SDOC,
|
||||||
T.PSUMWTAX NSUM,
|
T.PSUMWTAX NSUM,
|
||||||
T.RELEASE_DATE DRELEASE_DATE,
|
T.RELEASE_DATE DRELEASE_DATE,
|
||||||
(select V.STR_VALUE
|
(select V.STR_VALUE
|
||||||
@ -424,7 +446,7 @@ create or replace package body UDO_PKG_EXS_ALICE as
|
|||||||
AGNLIST AG,
|
AGNLIST AG,
|
||||||
CURNAMES CN,
|
CURNAMES CN,
|
||||||
ACATALOG CAT
|
ACATALOG CAT
|
||||||
where (LOWER(trim(T.ORD_NUMB)) like LOWER(CTMP))
|
where (LOWER(CTMP) like LOWER('%' || trim(T.ORD_NUMB) || '%'))
|
||||||
and T.ACC_AGENT = AG.RN
|
and T.ACC_AGENT = AG.RN
|
||||||
and T.CURRENCY = CN.RN
|
and T.CURRENCY = CN.RN
|
||||||
and T.CRN = CAT.RN
|
and T.CRN = CAT.RN
|
||||||
@ -451,7 +473,7 @@ create or replace package body UDO_PKG_EXS_ALICE as
|
|||||||
end if;
|
end if;
|
||||||
end loop;
|
end loop;
|
||||||
else
|
else
|
||||||
CRESP := 'Íå óêàçàí ïîèñêîâûé çàïðîñ';
|
CRESP := 'Íå ïîíÿòíî êàêîé çàêàç Âû õîòèòå íàéòè, èçâèíèòå...';
|
||||||
end if;
|
end if;
|
||||||
/* Âîçâðàùàåì îòâåò */
|
/* Âîçâðàùàåì îòâåò */
|
||||||
PKG_EXS.PRC_RESP_ARG_BLOB_SET(NIDENT => NIDENT,
|
PKG_EXS.PRC_RESP_ARG_BLOB_SET(NIDENT => NIDENT,
|
||||||
@ -485,17 +507,17 @@ create or replace package body UDO_PKG_EXS_ALICE as
|
|||||||
HELPER_PATTERNS.EXTEND();
|
HELPER_PATTERNS.EXTEND();
|
||||||
HELPER_PATTERNS(HELPER_PATTERNS.LAST) := 'ñâÿç%';
|
HELPER_PATTERNS(HELPER_PATTERNS.LAST) := 'ñâÿç%';
|
||||||
HELPER_PATTERNS.EXTEND();
|
HELPER_PATTERNS.EXTEND();
|
||||||
HELPER_PATTERNS(HELPER_PATTERNS.LAST) := 'íàéòè';
|
|
||||||
HELPER_PATTERNS.EXTEND();
|
|
||||||
HELPER_PATTERNS(HELPER_PATTERNS.LAST) := 'ìåíåäæåð%';
|
HELPER_PATTERNS(HELPER_PATTERNS.LAST) := 'ìåíåäæåð%';
|
||||||
|
HELPER_PATTERNS.EXTEND();
|
||||||
|
HELPER_PATTERNS(HELPER_PATTERNS.LAST) := '%ãîâîðèò%';
|
||||||
/* Çàáèðàåì äàííûå ñîîáùåíèÿ è êîíâåðòèðóåì â êîäèðîâêó ÁÄ */
|
/* Çàáèðàåì äàííûå ñîîáùåíèÿ è êîíâåðòèðóåì â êîäèðîâêó ÁÄ */
|
||||||
CTMP := BLOB2CLOB(LBDATA => REXSQUEUE.MSG, SCHARSET => 'UTF8');
|
CTMP := BLOB2CLOB(LBDATA => REXSQUEUE.MSG, SCHARSET => 'UTF8');
|
||||||
/* Êëàä¸ì êîíâåðòèðîâàííîå îáðàòíî (ïðîñòî äëÿ óäîáñòâà ìîíèòîðèíãà) */
|
/* Ïîäãîòîâèì ïîèñêîâóþ ôðàçó */
|
||||||
PKG_EXS.QUEUE_MSG_SET(NEXSQUEUE => REXSQUEUE.RN, BMSG => CLOB2BLOB(LCDATA => CTMP), RCQUEUE => RCTMP);
|
CTMP := UTL_SEARCH_STR_PREPARE(SSEARCH_STR => CTMP, SDELIM => ' ', HELPER_PATTERNS => HELPER_PATTERNS);
|
||||||
/* Åñëè åñòü ÷òî èñêàòü */
|
/* Åñëè åñòü ÷òî èñêàòü */
|
||||||
if (CTMP is not null) then
|
if (CTMP is not null) then
|
||||||
/* Ïîäãîòîâèì ïîèñêîâóþ ôðàçó */
|
/* Êëàä¸ì êîíâåðòèðîâàííîå îáðàòíî (ïðîñòî äëÿ óäîáñòâà ìîíèòîðèíãà) */
|
||||||
CTMP := UTL_SEARCH_STR_PREPARE(SSEARCH_STR => CTMP, SDELIM => ' ', HELPER_PATTERNS => HELPER_PATTERNS);
|
PKG_EXS.QUEUE_MSG_SET(NEXSQUEUE => REXSQUEUE.RN, BMSG => CLOB2BLOB(LCDATA => CTMP), RCQUEUE => RCTMP);
|
||||||
/* Èíèöèàëèçèðóåì îòâåò */
|
/* Èíèöèàëèçèðóåì îòâåò */
|
||||||
CRESP := 'Êîíòàêò íå íàéäåí';
|
CRESP := 'Êîíòàêò íå íàéäåí';
|
||||||
/* Èùåì çàïðîøåííîãî êîíòðàãåíòà */
|
/* Èùåì çàïðîøåííîãî êîíòðàãåíòà */
|
||||||
@ -506,9 +528,14 @@ create or replace package body UDO_PKG_EXS_ALICE as
|
|||||||
T.AGN_COMMENT SCONTACT_PERSON
|
T.AGN_COMMENT SCONTACT_PERSON
|
||||||
from AGNLIST T,
|
from AGNLIST T,
|
||||||
ACATALOG CAT
|
ACATALOG CAT
|
||||||
where ((LOWER(T.AGNABBR) like LOWER(CTMP)) or (LOWER(T.AGNNAME) like LOWER(CTMP)) or
|
where ((LOWER(CTMP) like LOWER('%' || replace(T.AGNABBR, ' ', '%') || '%')) or
|
||||||
(LOWER(T.AGNFAMILYNAME_AC) like LOWER(CTMP)) or (LOWER(T.AGNFAMILYNAME_ABL) like LOWER(CTMP)) or
|
(LOWER(CTMP) like LOWER('%' || replace(T.AGNNAME, ' ', '%') || '%')) or
|
||||||
(LOWER(T.AGNFAMILYNAME_TO) like LOWER(CTMP)) or (LOWER(T.AGNFAMILYNAME_FR) like LOWER(CTMP)))
|
((T.AGNFAMILYNAME is not null) and (LOWER(CTMP) like LOWER('%' || T.AGNFAMILYNAME || '%'))) or
|
||||||
|
((T.AGNFAMILYNAME_AC is not null) and (LOWER(CTMP) like LOWER('%' || T.AGNFAMILYNAME_AC || '%'))) or
|
||||||
|
((T.AGNFAMILYNAME_ABL is not null) and
|
||||||
|
(LOWER(CTMP) like LOWER('%' || T.AGNFAMILYNAME_ABL || '%'))) or
|
||||||
|
((T.AGNFAMILYNAME_TO is not null) and (LOWER(CTMP) like LOWER('%' || T.AGNFAMILYNAME_TO || '%'))) or
|
||||||
|
((T.AGNFAMILYNAME_FR is not null) and (LOWER(CTMP) like LOWER('%' || T.AGNFAMILYNAME_FR || '%'))))
|
||||||
and T.CRN = CAT.RN
|
and T.CRN = CAT.RN
|
||||||
and CAT.NAME = SSEARCH_CATALOG_NAME
|
and CAT.NAME = SSEARCH_CATALOG_NAME
|
||||||
and ROWNUM <= 1)
|
and ROWNUM <= 1)
|
||||||
@ -527,11 +554,11 @@ create or replace package body UDO_PKG_EXS_ALICE as
|
|||||||
end if;
|
end if;
|
||||||
/* Êîíòàêòû êîíòðàãåíòà - e-mail */
|
/* Êîíòàêòû êîíòðàãåíòà - e-mail */
|
||||||
if (C.SMAIL is not null) then
|
if (C.SMAIL is not null) then
|
||||||
CRESP := CRESP || ',à ìîæíî íå çâîíèòü, à íàïèñàòü e-mail: ' || C.SMAIL;
|
CRESP := CRESP || ', à ìîæíî íå çâîíèòü, à íàïèñàòü e-mail: ' || C.SMAIL;
|
||||||
end if;
|
end if;
|
||||||
end loop;
|
end loop;
|
||||||
else
|
else
|
||||||
CRESP := 'Íå óêàçàí ïîèñêîâûé çàïðîñ';
|
CRESP := 'Íå ïîíÿòíî êàêóþ êîíòàêòíóþ èíôîðìàöèþ Âû õîòèòå íàéòè, èçâèíèòå...';
|
||||||
end if;
|
end if;
|
||||||
/* Âîçâðàùàåì îòâåò */
|
/* Âîçâðàùàåì îòâåò */
|
||||||
PKG_EXS.PRC_RESP_ARG_BLOB_SET(NIDENT => NIDENT,
|
PKG_EXS.PRC_RESP_ARG_BLOB_SET(NIDENT => NIDENT,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user