From 64145d7ac075b77e5f8efa7243aa5108d1b2edc9 Mon Sep 17 00:00:00 2001 From: Mikhail Chechnev Date: Mon, 13 Oct 2025 17:03:32 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A6=D0=98=D0=A2=D0=9A-979=20-=20=D0=A0=D0=B5?= =?UTF-8?q?=D0=B4=D0=B0=D0=BA=D1=82=D0=BE=D1=80=20=D0=B7=D0=B0=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D1=81=D0=BE=D0=B2=20-=20=D0=9A=D0=BE=D0=BD=D1=82=D1=80?= =?UTF-8?q?=D0=BE=D0=BB=D1=8C=20=D0=B8=D0=BC=D0=B5=D0=BD=D0=B8=20=D0=B0?= =?UTF-8?q?=D1=80=D0=B3=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=BE=D0=B2:=20?= =?UTF-8?q?=D1=82=D0=BE=D0=BB=D1=8C=D0=BA=D0=BE=20=D0=BB=D0=B0=D1=82=D0=B8?= =?UTF-8?q?=D0=BD=D1=81=D0=BA=D0=B8=D0=B5=20=D0=B1=D1=83=D0=BA=D0=B2=D1=8B?= =?UTF-8?q?,=20=D1=86=D0=B8=D1=84=D1=80=D1=8B=20=D0=B8=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=B4=D1=87=D0=B5=D1=80=D0=BA=D0=B8=D0=B2=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5,=20=D0=BD=D0=B0=D1=87=D0=B0=D0=BB=D0=BE=20=D1=82=D0=BE?= =?UTF-8?q?=D0=BB=D1=8C=D0=BA=D0=BE=20=D1=81=20=D0=B1=D1=83=D0=BA=D0=B2?= =?UTF-8?q?=D1=8B,=20=D0=BF=D1=80=D0=B8=D0=BD=D1=83=D0=B4=D0=B8=D1=82?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20APPERCASE,=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BD=D1=82=D1=80=D0=BE=D0=BB=D1=8C=20=D1=83=D0=BD=D0=B8?= =?UTF-8?q?=D0=BA=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/PKG_P8PANELS_QE_BASE.pck | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/db/PKG_P8PANELS_QE_BASE.pck b/db/PKG_P8PANELS_QE_BASE.pck index 07cd11f..d1aaf98 100644 --- a/db/PKG_P8PANELS_QE_BASE.pck +++ b/db/PKG_P8PANELS_QE_BASE.pck @@ -473,6 +473,10 @@ create or replace package body PKG_P8PANELS_QE_BASE as P_EXCEPTION(0, 'Имя аргумента содержит недопустимые символы (разрешены латинские буквы, цифры и символ нижнего подчеркивания).'); end loop; + for C in (select null from DUAL where not REGEXP_LIKE(SUBSTR(SNAME, 1, 1), '^[A-z]+$')) + loop + P_EXCEPTION(0, 'Имя аргумента должно начинаться с буквы.'); + end loop; if (UPPER(SNAME) in (UPPER(SARG_NAME_PAGE), UPPER(SARG_NAME_PAGE_SIZE))) then P_EXCEPTION(0, 'Это имя аргумента зарезервировано Системой.'); end if; @@ -580,7 +584,7 @@ create or replace package body PKG_P8PANELS_QE_BASE as loop begin /* Возвращаем найденный индекс */ - if (RARGS(I).SNAME = SNAME) then + if (UPPER(RARGS(I).SNAME) = UPPER(SNAME)) then return I; end if; exception @@ -612,7 +616,7 @@ create or replace package body PKG_P8PANELS_QE_BASE as end if; /* Проверим уникальность имени */ if ((SNAME is not null) and (TARGS_INDEX_BY_NAME(RARGS => RARGS, SNAME => SNAME) is not null)) then - P_EXCEPTION(0, 'Аргумент с именем "%s" уже существует.', SNAME); + P_EXCEPTION(0, 'Аргумент с именем "%s" уже существует.', UPPER(SNAME)); end if; /* Формируем аргумент */ RARG := TARG_MAKE(SNAME => SNAME, @@ -2958,12 +2962,6 @@ create or replace package body PKG_P8PANELS_QE_BASE as end if; end BUILD_WHERE; begin - /* - TODO: owner="root" created="13.10.2025" - text="Контроль имен аргументов запроса: только латинские и фифры и подчеркивание, начинать только с буквы. - Принудительный APPERCASE - Контроль уникальности имени аргумента" - */ /* TODO: owner="root" created="10.09.2025" text="Предусмотреть отладочные значения для аргументов запроса"