powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Обрезать наименование получателя
5 сообщений из 5, страница 1 из 1
Обрезать наименование получателя
    #40119997
Matilda_tm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, необходимо сократить наименование получателя платежа.
Возможные вариации:
УФК по Хабаровскому краю (МИ ФНС России по Хабаровскому краю) - должно остаться МИ ФНС
УФК по Курской области (УФНС по Курской области) - должно остаться УФНС
УФК по Воронежской области (ИФНС России по Воронежской области) - должно остаться ИФНС
УФК МФ РФ по г.Санкт-Петербургу (для ИМНС по г.Санкт-Петербургу) - должно остаться ИМСН
может так же встретится полное название Управление федеральной налоговой службы вместо аббревиатуры УФНС.
Подскажите как сделать. Заранее спасибо всем ответившим.
...
Рейтинг: 0 / 0
Обрезать наименование получателя
    #40120002
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Matilda_tm,

Пока не понятно что Вы хотите.
Если Вы придумаете однозначный алгоритм, который описывает преобразование полного имени в короткое, то
Реализовать Вам его помогут (или Вы сами его сделаете), но пока я не вижу постановки задачи.
Тем более, скорее всего, то что Вы привели, далеко не полный набор необходимых подстановок.
Для начала разберитесь что необходимо.

Если в общем случае формализовать такое преобразование невозможно, то следует использовать таблицу замен (справочник).

Ну и на будущее, чтобы Вам помогли (а не сделали за Вас), подготовьте данные, покажите что сделали сами. Халявщиков никто не любит.

памятка:
HOWTO :: Как правильно задавать вопросы
Как мне оформить свое сообщение?
Студентам, желающим помощи

1) Полная постановка задачи (без сокращений)

2) Подготовьте тестовые данные, лучше в виде with
пример (не ваш случай) в конце

3) Покажите что сделали, что получили, без сокращений. ( лучше не в виде screenshot)

4) используйте Тэги, читать код без них неудобно, правильно оформляйте сообщение

Пример подготовленных данных, запроса и вывода.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
-- table 1 with column list
with user_tab(user_id,user_name,registry_date) as (
select 1,'Bob',to_date('11.02.1921 23:04:44','DD.MM.YYYY HH24:MI:SS') from dual union all
select 2,'Max',to_date('11.02.1922 23:04:44','DD.MM.YYYY HH24:MI:SS') from dual union all
select 3,'Jon',to_date('11.02.1923 23:04:44','DD.MM.YYYY HH24:MI:SS') from dual
)
-- table 2 with column list
,user_post(post_id,user_id,parent_post_id,post_date,message) as (
select 100,1,null,to_date('11.02.1923 23:04:00','DD.MM.YYYY HH24:MI:SS'),'Hi' from dual union all
select 101,2,100,to_date('11.02.1923 23:05:23','DD.MM.YYYY HH24:MI:SS'),'Hi' from dual union all
select 102,3,100,to_date('11.02.1923 23:05:35','DD.MM.YYYY HH24:MI:SS'),'Hi' from dual union all
select 103,1,102,to_date('11.02.1923 23:06:00','DD.MM.YYYY HH24:MI:SS'),'How are you' from dual union all
select 104,2,102,to_date('11.02.1923 23:07:05','DD.MM.YYYY HH24:MI:SS'),'All right!' from dual union all
select 105,1,101,to_date('11.02.1923 23:06:21','DD.MM.YYYY HH24:MI:SS'),'Bye' from dual union all
select 106,1,104,to_date('11.02.1923 23:04:37','DD.MM.YYYY HH24:MI:SS'),'Bye' from dual union all
select 107,2,null,to_date('11.02.1923 23:08:56','DD.MM.YYYY HH24:MI:SS'),'Hmm' from dual
)
select
rpad(to_char(p.post_date,'YYYY-MM-DD HH24:MI:SS  '),20+level*2,' ')||u.user_name||': '||p.message as txt
from 
 user_post p
 join user_tab  u on ( p.user_id = u.user_id)
where p.post_date >= u.registry_date
start with p.parent_post_id is null 
connect by prior p.post_id=p.parent_post_id 
;

TXT
--------------------------------------------------------------------------------
1923-02-11 23:04:00   Bob: Hi
1923-02-11 23:05:23     Max: Hi
1923-02-11 23:06:21       Bob: Bye
1923-02-11 23:05:35     Jon: Hi
1923-02-11 23:06:00       Bob: How are you
1923-02-11 23:07:05       Max: All right!
1923-02-11 23:04:37         Bob: Bye
1923-02-11 23:08:56   Max: Hmm

8 rows selected.
...
Рейтинг: 0 / 0
Обрезать наименование получателя
    #40120013
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Matilda_tm,

И еще подумайте например над этим (я не специалист в области платежей):
1) Если есть платеж, то скорее всего будет ИНН или номер счета, или еще что-то, что можно использовать в качестве ключа справочника

2) У Вас:
> УФК по Курской области (УФНС по Курской области) - должно остаться УФНС
А если будет:
УФК по Воронежской области (УФНС по Воронежской области) - тоже должно остаться УФНС????

3) Очень может быть, что нужный Вам справочник уже есть, просто Вы не знаете об этом.
...
Рейтинг: 0 / 0
Обрезать наименование получателя
    #40120021
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Matilda_tm,

Вырезать из скобок слова (больше 2х символов) в верхнем регистре?

....
stax
...
Рейтинг: 0 / 0
Обрезать наименование получателя
    #40120046
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
with t as (
select column_value s
  from table((select sys.odcivarchar2list('УФК по Хабаровскому краю (МИ ФНС России по Хабаровскому краю) - должно остаться МИ ФНС'
                                        ,'УФК по Курской области (УФНС по Курской области) - должно остаться УФНС'
                                        ,'УФК по Воронежской области (ИФНС России по Воронежской области) - должно остаться ИФНС'
                                        ,'УФК МФ РФ по г.Санкт-Петербургу (для ИМНС по г.Санкт-Петербургу) - должно остаться ИМСН')
                                        from dual
                                        )))
select s
     , regexp_substr(s, '(\(.*?)(([А-Я]+\s*)?[А-Я]{2,})',1,1,null,2) s2
 from t
;

S                                                                                S2
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
УФК по Хабаровскому краю (МИ ФНС России по Хабаровскому краю) - должно остаться  МИ ФНС
УФК по Курской области (УФНС по Курской области) - должно остаться УФНС          УФНС
УФК по Воронежской области (ИФНС России по Воронежской области) - должно остатьс ИФНС
УФК МФ РФ по г.Санкт-Петербургу (для ИМНС по г.Санкт-Петербургу) - должно остать ИМНС

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


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