CftClub.ru
Клуб специалистов ЦФТ-Банк

Доступ к Клиентам

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
Димас 56
Участник


Вступление в Клуб: 14.08.2015
СообщениеПн Окт 15, 2018 19:42   Доступ к Клиентам Ответить с цитатой
Полезность: Нет оценки
Доброго дня ! Коллеги тема уже поднималась, кто как "обрезает" доступ к данным Клиента?
Сделал расширение представления "Клиенты"- "Полный список". Условие на совпадение ИНН.Проверяю вхождение в группу для проверки доступа и выдается ИНН (одна запись).
(A.INN like (case when Z$P.LNT_IDE(stdlib.USERID) = 1 then /*PL+*/stdlib.USERID.[UNI_CODE]/*PL-*/ else '%' end)

работает , но нужно проверять несколько записей (массив ИНН) и выдавать клиентов которые совпадают.
vtar
Эксперт


Вступление в Клуб: 20.03.2009
СообщениеВт Окт 16, 2018 10:23    Ответить с цитатой
Полезность: Нет оценки
что то типа условия

and "ИНН" in ( select x(x."ИНН") in "массив_инн" all )
Димас 56
Участник


Вступление в Клуб: 14.08.2015
СообщениеСр Окт 17, 2018 19:25    Ответить с цитатой
Полезность: Нет оценки
Условие это безусловно гуд, но при case when разрешает вернуть только один экземпляр. Необходимо проверить входит ли пользователь в группу по доступу и только после выполнения условия сделать выборку по ИНН, иначе вывести все данные.
Эмиралька
Эксперт


Вступление в Клуб: 09.11.2015
СообщениеЧт Окт 18, 2018 10:03    Ответить с цитатой
Полезность: Нет оценки
Димас 56 пишет:
Условие это безусловно гуд, но при case when разрешает вернуть только один экземпляр. Необходимо проверить входит ли пользователь в группу по доступу и только после выполнения условия сделать выборку по ИНН, иначе вывести все данные.

для каждой записи проверить:

case when пользователь входит в группу по доступу then
case when проверка по ИНН выполняется then
1
else 0
end -- case проверки по ИНН закрыт
else 1 -- если пользователь в группу не входит, то даём все данные
end -- case проверки пользователя закрыт
= 1
vtar
Эксперт


Вступление в Клуб: 20.03.2009
СообщениеЧт Окт 18, 2018 17:49    Ответить с цитатой
Полезность: Нет оценки
в условии представления вызывай функцию
and f(a1_1.id) = 1

в функции сделай какую угодно логику проверки
Димас 56
Участник


Вступление в Клуб: 14.08.2015
СообщениеВс Окт 21, 2018 18:54    Ответить с цитатой
Полезность: Нет оценки
Благодарю, перемудрил я с этим "case" сделал два условия и готово)))
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru