powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Странное поведение validation
10 сообщений из 10, страница 1 из 1
Странное поведение validation
    #37297594
beginner_dba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
APEX 4.02, XE 10G

Привожу лог дебагерра
Session State: Saved Item "P2_TAXID" New Value="12345678"
...
Validation "P2_TAXID" - Exists Validation: type="EXISTS" select 1 from dual where length(:P2_TAX_ID) between 8 and 10;
Validation did NOT pass
Inline validation error count = 1

Вопрос почему дид нот пасс?
...
Рейтинг: 0 / 0
Странное поведение validation
    #37298159
SvUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если сменить тип validation на pl sql и вызвать
raise_application_error( -20001, 'P2_TAXID=' || :P2_TAX_ID || '; length(:P2_TAX_ID)=' || length(:P2_TAX_ID) );
что выведет?
...
Рейтинг: 0 / 0
Странное поведение validation
    #37298523
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beginner_dbaValidation "P2_TAXID" - Exists Validation: type="EXISTS" select 1 from dual where length(:P2_TAX_ID) between 8 and 10;
Validation did NOT pass
Inline validation error count = 1

Вопрос почему дид нот пасс?

Рискну предположить: потому что есть ещё Computation.

PS: Смените тип проверки на PL/SQL Expression.
...
Рейтинг: 0 / 0
Странное поведение validation
    #37299009
beginner_dba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvUserА если сменить тип validation на pl sql и вызвать
raise_application_error( -20001, 'P2_TAXID=' || :P2_TAX_ID || '; length(:P2_TAX_ID)=' || length(:P2_TAX_ID) );
что выведет?

ORA-06550: line 1, column 34: PLS-00222: no function with name 'RAISE_APPLICATION_ERROR' exists in this scope ORA-06550: line 1, column 7: PL/SQL: Statement ignored
...
Рейтинг: 0 / 0
Странное поведение validation
    #37299069
beginner_dba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suPPLerbeginner_dbaValidation "P2_TAXID" - Exists Validation: type="EXISTS" select 1 from dual where length(:P2_TAX_ID) between 8 and 10;
Validation did NOT pass
Inline validation error count = 1

Вопрос почему дид нот пасс?

Рискну предположить: потому что есть ещё Computation.

PS: Смените тип проверки на PL/SQL Expression.

ORA-06550: line 1, column 34: PLS-00103: Encountered the symbol "SELECT" when expecting one of the following: ( ) - + case mod new not null others table avg count current exists max min prior sql stddev sum variance execute multiset the both leading trailing forall merge year month DAY_ hour minute second timezone_hour timezone_minute timezone_region timezone_abbr time timestamp interval date
Может подскажите как правильно написать правило? Мне нужно сделать так, что длина строки айтема была между 8 и 10 символами.
Это ИНН- по украинским законам он может быть в этом диапазоне.
Computation. -нет ни одного.
...
Рейтинг: 0 / 0
Странное поведение validation
    #37299075
_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
_
Гость
beginner_dbaВопрос почему дид нот пасс?
Может, потому что значение сохраняем в одном элементе, а проверяем другой?
beginner_dbaSession State: Saved Item " P2_TAXID " New Value="12345678"
...
Validation "P2_TAXID" - Exists Validation: type="EXISTS" select 1 from dual where length( :P2_TAX_ID ) between 8 and 10;
Validation did NOT pass
...
Рейтинг: 0 / 0
Странное поведение validation
    #37299092
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beginner_dbasuPPLerпропущено...


Рискну предположить: потому что есть ещё Computation.

PS: Смените тип проверки на PL/SQL Expression.

ORA-06550: line 1, column 34: PLS-00103: Encountered the symbol "SELECT"

Ну, это понятно. Надо ж не только заменить тип проверки, но и изменить её текст с запроса на PL/SQL-выражение

Код: plaintext
LENGTH(:P2_TAXID) BETWEEN  8  AND  10 

beginner_dbaМожет подскажите как правильно написать правило?

Я присмотрелся к логу, у Вас сохраняется значение переменной P2_TAXID, а используется уже P2_TAX _ ID. Проблема в неправильном имени.
...
Рейтинг: 0 / 0
Странное поведение validation
    #37299114
beginner_dba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suPPLerbeginner_dbaпропущено...


ORA-06550: line 1, column 34: PLS-00103: Encountered the symbol "SELECT"

Ну, это понятно. Надо ж не только заменить тип проверки, но и изменить её текст с запроса на PL/SQL-выражение

Код: plaintext
LENGTH(:P2_TAXID) BETWEEN  8  AND  10 

beginner_dbaМожет подскажите как правильно написать правило?

Я присмотрелся к логу, у Вас сохраняется значение переменной P2_TAXID, а используется уже P2_TAX _ ID. Проблема в неправильном имени.
Огромное спасибо. Все заработало.
...
Рейтинг: 0 / 0
Странное поведение validation
    #37299148
SvUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
beginner_dbaORA-06550: line 1, column 34: PLS-00222: no function with name 'RAISE_APPLICATION_ERROR' exists in this scope ORA-06550: line 1, column 7: PL/SQL: Statement ignored

beginner_dbaORA-06550: line 1, column 34: PLS-00103: Encountered the symbol "SELECT" when expecting one of the following: ( ) - + case mod new not null others table avg count current exists max min prior sql stddev sum variance execute multiset the both leading trailing forall merge year month DAY_ hour minute second timezone_hour timezone_minute timezone_region timezone_abbr time timestamp interval date

Шутник. Элементарно код PL/SQL, код SQL, SQL(PL/SQL) Expression нужно различать.
...
Рейтинг: 0 / 0
Странное поведение validation
    #37299597
beginner_dba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvUserbeginner_dbaORA-06550: line 1, column 34: PLS-00222: no function with name 'RAISE_APPLICATION_ERROR' exists in this scope ORA-06550: line 1, column 7: PL/SQL: Statement ignored

beginner_dbaORA-06550: line 1, column 34: PLS-00103: Encountered the symbol "SELECT" when expecting one of the following: ( ) - + case mod new not null others table avg count current exists max min prior sql stddev sum variance execute multiset the both leading trailing forall merge year month DAY_ hour minute second timezone_hour timezone_minute timezone_region timezone_abbr time timestamp interval date

Шутник. Элементарно код PL/SQL, код SQL, SQL(PL/SQL) Expression нужно различать.
Пока еще сложно.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Странное поведение validation
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]