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

Стоит задача - идентифицировать создаваемые регионы по 3 признакам. Указываю их тип через разделитель в аттрибутах региона записью типа '12:3:34'

Теперь необходимо сопоставить каждому значению типа текстовое значение. Но при выборке из служебной таблице регионов, выбирая и парся эту запись через regexp_substr возникает коллизия - 3 записи подзапроса на 1 основного запроса. Как мне их "примерить" ?

Возможно вопрос к форуму по SQL
...
Рейтинг: 0 / 0
Идентификация типа регионов
    #37102228
Фотография Foxter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исользую вот такой запрос

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT A.application_name, A.region_name, A.region_attributes_substitution sert,

(select regexp_substr(region_attributes_substitution, '[[:digit:]]+',  1 , level) eq from apex_application_page_regions connect by level <  4 )

FROM apex_application_page_regions    A

WHERE region_attributes_substitution IS NOT NULL

AND application_id =  117 
...
Рейтинг: 0 / 0
Идентификация типа регионов
    #37102265
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxter,

Код: plaintext
1.
2.
3.
SELECT A.application_name, A.region_name, A.region_attributes_substitution sert,
  FROM apex_application_page_regions    A
 WHERE region_attributes_substitution IS NOT NULL
   AND application_id =  117 

Выбрали Вы регионы со строками, для начала. А текстовые значения где?
...
Рейтинг: 0 / 0
Идентификация типа регионов
    #37102323
Фотография Foxter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suPPLerFoxter,

Код: plaintext
1.
2.
3.
SELECT A.application_name, A.region_name, A.region_attributes_substitution sert,
  FROM apex_application_page_regions    A
 WHERE region_attributes_substitution IS NOT NULL
   AND application_id =  117 

Выбрали Вы регионы со строками, для начала. А текстовые значения где?

Их потом через Декоде добавлю. Сейчас главное, чтобы выборка нормально отображалась - 3 параметра = 3 подстроки. У меня же параметры в одной строке - '12:22:32' etc
...
Рейтинг: 0 / 0
Идентификация типа регионов
    #37102407
Фотография Foxter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот этот "монстр" вроде правильно выбирает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT DISTINCT A.* from

(SELECT rn1, regexp_substr(sert, '[[:digit:]]+',  1 , level) eq 

from 

(SELECT region_name RN1, region_attributes_substitution sert FROM apex_application_page_regions WHERE region_attributes_substitution IS NOT NULL AND region_attributes_substitution <> '#REGION_ATTRIBUTES#') 

connect by level <  4  ) A

ORDER BY RN1

Вроде правильно :) Правда необходимо выбирать по всем приложениям, а как соорудить эту надстройку?
...
Рейтинг: 0 / 0
Идентификация типа регионов
    #37103120
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FoxtersuPPLerFoxter,

Код: plaintext
1.
2.
3.
SELECT A.application_name, A.region_name, A.region_attributes_substitution sert,
  FROM apex_application_page_regions    A
 WHERE region_attributes_substitution IS NOT NULL
   AND application_id =  117 

Выбрали Вы регионы со строками, для начала. А текстовые значения где?

Их потом через Декоде добавлю. Сейчас главное, чтобы выборка нормально отображалась - 3 параметра = 3 подстроки. У меня же параметры в одной строке - '12:22:32' etc
Код: plaintext
1.
2.
3.
4.
SELECT A.application_name, A.region_name, A.region_attributes_substitution sert, t.text_value
  FROM apex_application_page_regions    A, your_table_with_text_values t /* Таблица, где числовым кодам сопоставляются текстовые значения */
 WHERE region_attributes_substitution IS NOT NULL
   AND application_id =  117 
   and instr(a.region_attributes_substitution||':', t.code||':') >  0 
...
Рейтинг: 0 / 0
Идентификация типа регионов
    #37103132
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suPPLer
Код: plaintext
1.
2.
3.
4.
SELECT A.application_name, A.region_name, A.region_attributes_substitution sert, t.text_value
  FROM apex_application_page_regions    A, your_table_with_text_values t /* Таблица, где числовым кодам сопоставляются текстовые значения */
 WHERE region_attributes_substitution IS NOT NULL
   AND application_id =  117 
   and instr(':'||a.region_attributes_substitution||':', ':'||t.code||':') >  0 
...
Рейтинг: 0 / 0
Идентификация типа регионов
    #37106511
Фотография Foxter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за помощь. Думал вручную все соответствия в Декод прописывать. Теперь придется подумать о табличке со значениями :) Спасибо
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Идентификация типа регионов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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