![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с настройками клиента Oracle (а может еще чего-то)
Sonia © (2007-08-08 21:23:00)В общем вопрос несколько нестандартный...Сегодня столкнулась с такой проблемой, что запрос выбирает не все данные. Стала расбираться, оказалось, логика запроса тут ни причем. Ни причем также оказались и права пользователей на выборку данных из таблиц. Однако, на моем компьютере запрос работает и выбирает все, на остальных каких-то данных (причем не понятно по какому принципу!) не хватает. Я думаю, что дело в настройках клиента Oracle, может что-то не так в реестре.
У кого-то есть идеи?
Заранее спасибо!
ЗЫ. В чудеса не верю, но все же...
Sonia (2007-08-10 09:08:00) [1]
> Desdechado © (09.08.07 19:53) [16]
> Fine Grained Access Control используется?
А что это ? :)
Desdechado (2007-08-09 19:53:00) [2]Fine Grained Access Control используется?
Игорь Шевченко (2007-08-09 15:44:00) [3]
> А это не мой запрос, я бы так не написала :)
Ты это пользователям расскажи - они еще больше любить будут :)
Sonia (2007-08-09 15:18:00) [4]
> Судя по запросу, вообще не понятно, как у нас самолеты ещё
> летают...:)))
А это не мой запрос, я бы так не написала :)
Johnmen (2007-08-09 14:06:00) [5]
> Sergey13 © (09.08.07 13:25) [11]
Это происки америкосов - у них неделя с отдыха начинается :)
> Sonia ©
Судя по запросу, вообще не понятно, как у нас самолеты ещё летают...:)))
Sonia (2007-08-09 13:55:00) [6]Спасибо, я посмотрю.
Sergey13 (2007-08-09 13:25:00) [7]> [6] Sonia © (09.08.07 11:34)
> (SA.MONDAY_ORG IS NOT NULL AND
> TO_CHAR(SYSDATE + 2, 'D') = '1')
Вот у меня запрос
select sysdate+4, TO_CHAR(SYSDATE+4 , 'D') from dual
выдает (для MONDAY)
13.08.2007 2
Т.е. такое ощущение, что неделя начинается не с понедельника, а с воскресения. Это в Оракле, насколько я помню, рулится где то в параметрах NLS. Где точнее не скажу - на вскидку не помню, а ковыряться лень.
Sonia (2007-08-09 12:44:00) [8]
> Игорь Шевченко © (09.08.07 12:26) [9]
Спасибо, попробую заменить. А может ли вообще формат представления даты мешать? (ну там через точку или через /) То есть в поле дата записанав одном формате, а системная берется в другом? И как это можно обойти?
Игорь Шевченко (2007-08-09 12:26:00) [9]Sonia © (09.08.07 12:19) [8]
Я, собственно, не вижу проблем из-за настроек даты, поскольку везде явно указан формат преобразования.
Что бы я предложил - это заменить SYSDATE на TRUNC(SYSDATE), чтобы время не вмешивалось (если оно не требуется), но, с третьей стороны, я в логику запроса не вникал, так что может, что и пропустил.
Sonia (2007-08-09 12:19:00) [10]
> Игорь Шевченко © (09.08.07 12:16) [7]
Спасибо :)
Ну а все-таки, в чем может быть загвоздка касательно запроса? :)
Игорь Шевченко (2007-08-09 12:16:00) [11]Sonia © (09.08.07 11:34) [6]
Конкуренты...Ну пусть вас и дальше пользователи не любят :)
Sonia (2007-08-09 11:34:00) [12]
SELECT
CD.FLT,
CD.FLN,
CD.SHD,
CD.FLC,
CD.FLX,
to_char(CD.PD1, 'HH24:MI') PD1,
to_char(CD.PD2, 'HH24:MI') PD2,
to_char(CD.PD0, 'HH24:MI') PD0,
REPLACE(L.LOC_NAME_CYR, '"', '''') AIRPORT_NAME_0,
REPLACE(L1.LOC_NAME_CYR, '"', '''') AIRPORT_NAME_1,
REPLACE(L2.LOC_NAME_CYR, '"', '''') AIRPORT_NAME_2,
to_char(CD.STA, 'HH24:MI') STA,
CD.FST
FROM
CURRENT_ARRIVALS CD,
LOCATIONS L,
LOCATIONS L1,
LOCATIONS L2
WHERE
TRUNC (CD.PD0,'DD') = TRUNC (SYSDATE + 2,'DD') AND
CD.VI1 = L1.DME_CODE (+) AND
CD.VI2 = L2.DME_CODE (+) AND
CD.ORG = L.DME_CODE AND
CD.TOF = 'М' AND
CD.SST<>'SF'
UNION
SELECT
SA.FLT ,
SA.FLN,
SA.SHD,
SA.FLC,
SA.FLX,
to_char(SA.PD1, 'HH24:MI') PD1,
to_char(SA.PD2, 'HH24:MI') PD2,
to_char(SA.PD0, 'HH24:MI') PD0,
REPLACE(L.LOC_NAME_CYR, '"', '''') AIRPORT_NAME_0,
REPLACE(L1.LOC_NAME_CYR, '"', '''') AIRPORT_NAME_1,
REPLACE(L2.LOC_NAME_CYR, '"', '''') AIRPORT_NAME_2,
to_char(SA.FIRST_DATE, 'HH24:MI'),
SA.FST
FROM
SEASONAL_ARRIVALS SA,
LOCATIONS L,
LOCATIONS L1,
LOCATIONS L2
WHERE
SA.VI1 = L1.DME_CODE (+) AND
SA.VI2 = L2.DME_CODE (+) AND
SA.SHD IS NOT NULL AND
SA.ORG= L.DME_CODE AND
SA.FIRST_DATE < SYSDATE + 3 AND
SA.LAST_DATE >= SYSDATE + 2 AND
SA.CANCELLED is null AND
SA.OVM IS NOT NULL AND
SA.TOF = 'М' AND
((SA.SUNDAY_ORG IS NOT NULL AND
TO_CHAR(SYSDATE + 2, 'D') = '7') OR
(SA.MONDAY_ORG IS NOT NULL AND
TO_CHAR(SYSDATE + 2, 'D') = '1') OR
(SA.TUESDAY_ORG IS NOT NULL AND
TO_CHAR(SYSDATE + 2, 'D') = '2') OR
(SA.WEDNESDAY_ORG IS NOT NULL AND
TO_CHAR(SYSDATE + 2, 'D') = '3') OR
(SA.THURSDAY_ORG IS NOT NULL AND
TO_CHAR(SYSDATE + 2, 'D') = '4') OR
(SA.FRIDAY_ORG IS NOT NULL AND
TO_CHAR(SYSDATE + 2, 'D') = '5') OR
(SA.SATURDAY_ORG IS NOT NULL AND
TO_CHAR(SYSDATE + 2, 'D') = '6'))
Причем, как я обнаружила ошибка (возможно) кроется в настройках по работе с датой
Sergey13 (2007-08-09 11:30:00) [13]> [2] Sonia © (09.08.07 08:51)
> Мне выложить в форум запрос?
Выложи.
Sonia (2007-08-09 11:27:00) [14]
> Вот за это пользователи и не любят программистов. И правильно
> не любят
Ну почему же :(
Игорь Шевченко (2007-08-09 11:03:00) [15]
> Нет, не значит. Я лично открыла таблицы, проверила, данные
> есть. У меня на компьютере запрос всегда выполняется корректно,
> как выполняю запрос на другом компьютере (даже используя
> свою админскую учетную запись!) постоянно чего-то не хватает,
> причем я не могу выявить закономерности в недовыбранных
> даннных...
Вот за это пользователи и не любят программистов. И правильно не любят
Sonia (2007-08-09 08:51:00) [16]
> Это значит, что эти неотобранные данные просто отсутствуют.
Нет, не значит. Я лично открыла таблицы, проверила, данные есть. У меня на компьютере запрос всегда выполняется корректно, как выполняю запрос на другом компьютере (даже используя свою админскую учетную запись!) постоянно чего-то не хватает, причем я не могу выявить закономерности в недовыбранных даннных...
> И где, кстати, сам запрос?
Всмысле где? Мне выложить в форум запрос?
Johnmen (2007-08-08 21:56:00) [17]
> запрос выбирает не все данные.
Это значит, что эти неотобранные данные просто отсутствуют.
И где, кстати, сам запрос?