forked from CITKParus/P8-Panels
БД: Отвязка от серверных объектов "Сервиса интеграции"
This commit is contained in:
parent
92b22932cc
commit
3625b4a095
@ -228,6 +228,35 @@ create or replace package body PKG_P8PANELS_BASE as
|
|||||||
end if;
|
end if;
|
||||||
end UTL_SEARCH_PREPARE;
|
end UTL_SEARCH_PREPARE;
|
||||||
|
|
||||||
|
/* Разбор ссылки на вызываемый хранимый объект */
|
||||||
|
procedure UTL_STORED_PARSE_LINK
|
||||||
|
(
|
||||||
|
SSTORED in varchar2, -- Ссылка на вызываемый хранимый объект
|
||||||
|
SPROCEDURE out varchar2, -- Имя процедуры
|
||||||
|
SPACKAGE out varchar2 -- Имя пакета
|
||||||
|
)
|
||||||
|
is
|
||||||
|
NDELIMITER PKG_STD.TNUMBER; -- Позиция разделителя имени пакета в наименовании хранимого объекта
|
||||||
|
begin
|
||||||
|
/* Если есть что разбирать */
|
||||||
|
if (SSTORED is not null) then
|
||||||
|
/* Проверим наличие разделителя */
|
||||||
|
NDELIMITER := INSTR(SSTORED, '.');
|
||||||
|
/* Если разделитель есть */
|
||||||
|
if (NDELIMITER <> 0) then
|
||||||
|
/* Всё что справа от него - это имя процедуры */
|
||||||
|
SPROCEDURE := UPPER(SUBSTR(SSTORED, NDELIMITER + 1));
|
||||||
|
/* Всё что слева от него - это имя пакета */
|
||||||
|
SPACKAGE := UPPER(SUBSTR(SSTORED, 1, NDELIMITER - 1));
|
||||||
|
else
|
||||||
|
/* Разделителя нет - это просто имя хранимой процедуры */
|
||||||
|
SPROCEDURE := UPPER(SSTORED);
|
||||||
|
/* Без указания пакета */
|
||||||
|
SPACKAGE := null;
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end UTL_STORED_PARSE_LINK;
|
||||||
|
|
||||||
/* Формирование сообщения об отсутствии значения */
|
/* Формирование сообщения об отсутствии значения */
|
||||||
function MSG_NO_DATA_MAKE
|
function MSG_NO_DATA_MAKE
|
||||||
(
|
(
|
||||||
@ -621,12 +650,12 @@ create or replace package body PKG_P8PANELS_BASE as
|
|||||||
'Хранимая процедура/функция "' || SSTORED_ || '" не определена.');
|
'Хранимая процедура/функция "' || SSTORED_ || '" не определена.');
|
||||||
else
|
else
|
||||||
/* Проверим, что в имени нет ссылки на пакет */
|
/* Проверим, что в имени нет ссылки на пакет */
|
||||||
PKG_EXS.UTL_STORED_PARSE_LINK(SSTORED => SSTORED_, SPROCEDURE => SPROCEDURE, SPACKAGE => SPACKAGE);
|
UTL_STORED_PARSE_LINK(SSTORED => SSTORED_, SPROCEDURE => SPROCEDURE, SPACKAGE => SPACKAGE);
|
||||||
/* Если в имени есть ссылка на пакет - сначала проверим его состояние */
|
/* Если в имени есть ссылка на пакет - сначала проверим его состояние */
|
||||||
if (SPACKAGE is not null) then
|
if (SPACKAGE is not null) then
|
||||||
RPACKAGE := PKG_OBJECT_DESC.DESC_PACKAGE(SPACKAGE_NAME => SPACKAGE, BRAISE_ERROR => false);
|
RPACKAGE := PKG_OBJECT_DESC.DESC_PACKAGE(SPACKAGE_NAME => SPACKAGE, BRAISE_ERROR => false);
|
||||||
end if;
|
end if;
|
||||||
/* Если есть ссылка на пакет, или он не валиден - это ошибка */
|
/* Если есть ссылка на пакет, и он невалиден - это ошибка */
|
||||||
if ((SPACKAGE is not null) and (RPACKAGE.STATUS <> SDB_OBJECT_STATE_VALID)) then
|
if ((SPACKAGE is not null) and (RPACKAGE.STATUS <> SDB_OBJECT_STATE_VALID)) then
|
||||||
P_EXCEPTION(0,
|
P_EXCEPTION(0,
|
||||||
'Пакет "' || SPACKAGE ||
|
'Пакет "' || SPACKAGE ||
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user