powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Не отображается дерево APEX 4.1
8 сообщений из 8, страница 1 из 1
Не отображается дерево APEX 4.1
    #37482603
well9999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Формирую стандартное дерево на основе запроса SQL (поля ID,PARENT,NAME и VISIBLE,ORDER_STR)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT case when connect_by_isleaf =  1  then  0 
            when level =  1              then  1 
            else                           - 1 
       end as status, 
       level, 
       NAME as title, 
       null as icon, 
       ID as value, 
       null as tooltip, 
       null as link
FROM WELL.STRUCTURE 
START WITH PARENT IS NULL
connect by prior ID = PARENT 
ORDER SIBLINGS BY order_str
Всё работает, дерево отображается нормально. Но мне нужно отображать лишь те записи где VISIBLE=0.
Я меняю запрос:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT case when connect_by_isleaf =  1  then  0 
            when level =  1              then  1 
            else                           - 1 
       end as status, 
       level, 
       NAME as title, 
       null as icon, 
       ID as value, 
       null as tooltip, 
       null as link
FROM WELL.STRUCTURE [color=red]WHERE VISIBLE= [b]0 [/b][/color]
START WITH PARENT IS NULL
connect by prior ID = PARENT 
ORDER SIBLINGS BY order_str
Но в этом случае дерево почему-то пустое. Хотя сам запрос выполняется нормально (скажем в SQL Developer в виде:
Код: plaintext
1.
2.
3.
4.
SELECT NAME ,ID 
FROM WELL.STRUCTURE [color=red]WHERE VISIBLE= [b]0 [/b][/color]
START WITH PARENT IS NULL
connect by prior ID = PARENT 
ORDER SIBLINGS BY order_str
Где может быть ошибка?
...
Рейтинг: 0 / 0
Не отображается дерево APEX 4.1
    #37491096
well9999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто-нибудь пробовал использовать оператор WHERE в дереве APEX 4.1?
У меня почему-то дерево начинается отображаться только в случае если все записи соответсвуют условию описанному WHERE, если хоть одна запись не соответсвует условию то дерево не отображается.
????????????????????
...
Рейтинг: 0 / 0
Не отображается дерево APEX 4.1
    #37491107
ArtMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуйте подзапрос в скобки загнать
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SELECT case when connect_by_isleaf =  1  then  0 
            when level =  1              then  1 
            else                           - 1 
       end as status, 
       level, 
       NAME as title, 
       null as icon, 
       ID as value, 
       null as tooltip, 
       null as link
FROM 
   (SELECT *
    WELL.STRUCTURE
    WHERE VISIBLE= 0 )
START WITH PARENT IS NULL
connect by prior ID = PARENT 
ORDER SIBLINGS BY order_str
...
Рейтинг: 0 / 0
Не отображается дерево APEX 4.1
    #37491110
ArtMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SELECT case when connect_by_isleaf = 1 then 0
when level = 1 then 1
else -1
end as status,
level,
NAME as title,
null as icon,
ID as value,
null as tooltip,
null as link
FROM
(SELECT *
FROM WELL.STRUCTURE
WHERE VISIBLE=0)
START WITH PARENT IS NULL
connect by prior ID = PARENT
ORDER SIBLINGS BY order_str
...
Рейтинг: 0 / 0
Не отображается дерево APEX 4.1
    #37491390
well9999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ArtMan, спасибо!
Но почему без подзапроса не срабатывает?
...
Рейтинг: 0 / 0
Не отображается дерево APEX 4.1
    #37491714
ArtMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Потому что при построении дерева цепочка на каком-то узле рубится на WHERE и обход дальше не идет, а если использовать подзапрос, то работаем уже с отфильтрованной последовательностью. Это вам повезло, что ничего не отображалось, сразу начали копать. У меня было иначе, отображалось, но не все и выяснилось это поздно.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Не отображается дерево APEX 4.1
    #39642052
c-net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Супер! пару дней ищу эту информацию (как запихнуть where в построение дерева). Однако не получается, не строится дерево.
Апекс 5
что не так?

from (SELECT *
FROM Tree
WHERE vid_ob='Vid1')
start with IDREESTR=1
connect by prior IDREESTR = IDPARENT



полностью

select case when connect_by_isleaf = 1 then 0
when level = 1 then 1
else -1
end as status,
level,

Polnslojnomer || ' ' || Naimenovanie as title,
'icon-gear' as icon,
IDREESTR as value,
null as tooltip,
'javascript:pageItemValue('||apex_escape.js_literal(IDREESTR)||')' as link


from (SELECT *
FROM Tree
WHERE vid_ob='Vid1')
start with IDREESTR=1
connect by prior IDREESTR = IDPARENT



без вложенного запроса все четко.
...
Рейтинг: 0 / 0
Не отображается дерево APEX 4.1
    #39642588
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё что требуется - учитывать особенности иерархических запросов в БД:

https://docs.oracle.com/cd/E11882_01/server.112/e41084/queries003.htm#SQLRF52332 Oracle processes hierarchical queries as follows:

A join, if present, is evaluated first, whether the join is specified in the FROM clause or with WHERE clause predicates.
The CONNECT BY condition is evaluated.
Any remaining WHERE clause predicates are evaluated.


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


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