Пн Фев 26, 2018 14:31 Запрос выдает пустоту при имеющихся данных
Полезность: Нет оценки
Здравствуйте. Подскажите, пожалуйста, почему у меня запрос SELECT * FROM IBS.VW_CRIT_CRED_OUTBAL WHERE ROWNUM <2 не возвращает данных, хотя через интерфейс я вижу, что данные есть. IBS.EXECUTUR.LOCK_OPEN я сделала, а также установила значения контекстные переменных IBS.EXECUTOR.SET_CONTEXT('P_DATE',... А также P_BRANCH и P_DEPARTCODE. Что я делаю не так?
P.S. Поиск по форуму использовала, но решить свою проблему всё равно не смогла
Вт Фев 27, 2018 06:43 Re: Запрос выдает пустоту при имеющихся данных
Полезность: Нет оценки
SilverRoon пишет:
Здравствуйте. Подскажите, пожалуйста, почему у меня запрос SELECT * FROM IBS.VW_CRIT_CRED_OUTBAL WHERE ROWNUM <2 не возвращает данных, хотя через интерфейс я вижу, что данные есть. IBS.EXECUTUR.LOCK_OPEN я сделала, а также установила значения контекстные переменных IBS.EXECUTOR.SET_CONTEXT('P_DATE',... А также P_BRANCH и P_DEPARTCODE. Что я делаю не так?
P.S. Поиск по форуму использовала, но решить свою проблему всё равно не смогла
Помимо контекстных переменных в запросе есть ещё проверка прав доступа.
Попробуйте "выдернуть" эту часть из текста представления и проверить, выдан ли Вам доступ.
А что это за представление? Я его не нашла.
Вт Фев 27, 2018 10:27 Re: Запрос выдает пустоту при имеющихся данных
Полезность: Нет оценки
Эмиралька пишет:
Помимо контекстных переменных в запросе есть ещё проверка прав доступа.
Попробуйте "выдернуть" эту часть из текста представления и проверить, выдан ли Вам доступ.
как вариант, можно в свойствах представления проставить
флаги "не использовать контекст доступа"
"не проверять доступ к массивам"
"Проверка доступа" = НЕТ
и перекомпилировать. Если после этого запрос вернет данные, то проблема в правах.
begin
dbms_output.put_line(rtl.open);
ibs.user_context.set_attribute('VW_CRIT_DOG_TO_CLOSE_DATE', '27/04/2018');
end;
после этого
select sys_context('IBS_USER','VW_CRIT_DOG_TO_CLOSE_DATE' ) from dual;
вычитывает значение атрибута, то есть и в вьюхе он должен отработать
select * from ibs.vw_crit_dog_to_close
Да, я тут смотрела. Вынесла для себя оттуда то, что моя проблема может быть в том, что контекстные переменные таки не установились. Сделала select sys_context и вижу, что там занесенные мною значения. Больше не знала, что ещё попробовать. У меня есть другой запрос, там имена представления и переменных другие и он работает. А именно к этому представлению нет.
Вт Фев 27, 2018 13:29 Re: Запрос выдает пустоту при имеющихся данных
Полезность: Нет оценки
vtar пишет:
Эмиралька пишет:
Помимо контекстных переменных в запросе есть ещё проверка прав доступа.
Попробуйте "выдернуть" эту часть из текста представления и проверить, выдан ли Вам доступ.
как вариант, можно в свойствах представления проставить
флаги "не использовать контекст доступа"
"не проверять доступ к массивам"
"Проверка доступа" = НЕТ
и перекомпилировать. Если после этого запрос вернет данные, то проблема в правах.
Не могу ничего такого, у меня есть доступ только делать селект к представлениям и прочитать текст представления.
Вт Фев 27, 2018 14:22 Re: Запрос выдает пустоту при имеющихся данных
Полезность: Нет оценки
Эмиралька пишет:
SilverRoon пишет:
Здравствуйте. Подскажите, пожалуйста, почему у меня запрос SELECT * FROM IBS.VW_CRIT_CRED_OUTBAL WHERE ROWNUM <2 не возвращает данных, хотя через интерфейс я вижу, что данные есть. IBS.EXECUTUR.LOCK_OPEN я сделала, а также установила значения контекстные переменных IBS.EXECUTOR.SET_CONTEXT('P_DATE',... А также P_BRANCH и P_DEPARTCODE. Что я делаю не так?
P.S. Поиск по форуму использовала, но решить свою проблему всё равно не смогла
Помимо контекстных переменных в запросе есть ещё проверка прав доступа.
Попробуйте "выдернуть" эту часть из текста представления и проверить, выдан ли Вам доступ.
А что это за представление? Я его не нашла.
Это в кредитах что-то про внебалансовые счета.
Скажите, а если я от имени одного и того же пользователя в инефейсе вижу эти данные, а через запрос в Sql developer нет, то это всё равно в правах может бы дело?
Чт Мар 01, 2018 11:55 Re: Запрос выдает пустоту при имеющихся данных
Полезность: Нет оценки
SilverRoon пишет:
Не могу ничего такого, у меня есть доступ только делать селект к представлениям и прочитать текст представления.
значит выставляй мотивированную претензию тому кто тебе поставил эту задачу или заявку на сервис-деск со скриншотами АРМ навигатор (есть данные), select нет данных.
У тебя нет возможности самостоятельно решить эту проблему.
Пн Мар 05, 2018 07:24 Re: Запрос выдает пустоту при имеющихся данных
Полезность: 1
SilverRoon пишет:
Эмиралька пишет:
SilverRoon пишет:
Здравствуйте. Подскажите, пожалуйста, почему у меня запрос SELECT * FROM IBS.VW_CRIT_CRED_OUTBAL WHERE ROWNUM <2 не возвращает данных, хотя через интерфейс я вижу, что данные есть. IBS.EXECUTUR.LOCK_OPEN я сделала, а также установила значения контекстные переменных IBS.EXECUTOR.SET_CONTEXT('P_DATE',... А также P_BRANCH и P_DEPARTCODE. Что я делаю не так?
P.S. Поиск по форуму использовала, но решить свою проблему всё равно не смогла
Помимо контекстных переменных в запросе есть ещё проверка прав доступа.
Попробуйте "выдернуть" эту часть из текста представления и проверить, выдан ли Вам доступ.
А что это за представление? Я его не нашла.
Это в кредитах что-то про внебалансовые счета.
Скажите, а если я от имени одного и того же пользователя в инефейсе вижу эти данные, а через запрос в Sql developer нет, то это всё равно в правах может бы дело?
Есть три места, в которых может быть затык.
1. нужно зарегистрировать сессию через выполнением запроса.
2. нужно иметь доступ к представлению и данным представления
Для того, чтобы проконтролировать эти два момента, рекомендую сделать копию представления с заранее заданными датой, маской и что там ещё используется. Можно также поставить ограничение на количество строк, потому что представление вами будет использоваться не для работы, а для проверки. И попробовать выполнить запрос из копии. Если данные будут получены, то проблема с правами или регистрацией сессии неактуальна.
3. не все переменные контекста для представления заполнены. В копии по одному восстанавливайте чтение контекста вместо предустановленных параметров, как это сделано в исходном представлении до тех пор, пока копия не будет его изначальной копией. Итеративно проверяйте наличие данных в запросе из SQL Dev.
Если Вам не хватает прав для этого эксперимента, то либо выбивайте права для себя, либо свалите эту работу на DBA.
Возможно, как-то поможет нижеследующий запрос:
Код:
select
se.subj_id "Пользователь с правами"
, SYS_CONTEXT('IBS_SYSTEM','OSUSER') "Это я"
, SYS_CONTEXT('IBS_SYSTEM','ADMIN') "Админ?"
, SYS_CONTEXT('IBS_USER','PARAM1') "Параметр1"
FROM ibs.Criteria_Rights M_R, ibs.Subj_Equal SE
where M_R.obj_id = (select id from ibs.criteria where short_name = 'VW_CRIT_CRED_OUTBAL')
AND M_R.Subj_Id=SE.Equal_Id
;
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
Домен cftclub.ru не связан с ЗАО "Центр Финансовых Технологий" и ни в коей мере не нарушает авторских и иных прав
Владелец может не разделять мнения Участников и не несет ответственности за их публикации
Powered by phpBB