powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Подскажите регулярное выражение. Проверка КПП банка
3 сообщений из 3, страница 1 из 1
Подскажите регулярное выражение. Проверка КПП банка
    #39329599
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, как условие в данном IF заменить регуляркой с REGEXP_LIKE ?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
BEGIN

      IF LENGTH(i_kpp) <> 9 
      OR LTRIM(SUBSTR(i_kpp,1,4),'1234567890') IS NOT NULL
      OR LTRIM(SUBSTR(i_kpp,5,2),'1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ') IS NOT NULL  
      OR LTRIM(SUBSTR(i_kpp,7,3),'1234567890') IS NOT NULL
      THEN 
        raise_application_error(-20001,'ашыпка');
      END IF;  

END;



Алгоритм проверки:
1) Длина = 9 знаков
2) Четыре знака с 1 по 4 = цифры (0..9)
3) Два знака с 5 по 6 = цифры (0..9) ИЛИ буквы латинского алфавита в верхнем регистре (A..Z)
4) Три знака с 7 по 9 = цифры (0..9)


Сам в регэкспах ни в зуб ногой. Этого достаточно будет или что-то не учел?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
WITH t AS(
  SELECT '1111' v FROM dual UNION ALL
  SELECT '123456789' v FROM dual UNION ALL
  SELECT '098765432' v FROM dual UNION ALL
  SELECT 'A12345678' v FROM dual UNION ALL
  SELECT '1234A2567' v FROM dual UNION ALL
  SELECT '1234AA56' v FROM dual UNION ALL
  SELECT '1234AAD60' v FROM dual
)

SELECT v , CASE WHEN regexp_like(v,'^[0-9]{4}[0-9A-Z]{2}[0-9]{3}$','c') THEN 'OK' ELSE 'ERROR' END  
FROM t 







--------------------------------------------------------------
Запомните, товарищи офицеры, чтобы ничего не делать, надо уметь делать все.
...
Рейтинг: 0 / 0
Подскажите регулярное выражение. Проверка КПП банка
    #39329615
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvanoЭтого достаточно будет
...
Рейтинг: 0 / 0
Подскажите регулярное выражение. Проверка КПП банка
    #39329626
ORA__SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvanoПодскажите, как условие в данном IF заменить регуляркой с REGEXP_LIKE ?А зачем потребовалось менять на регулярку? Какие плюшки получили от замены?
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Подскажите регулярное выражение. Проверка КПП банка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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