Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Разные данные из VIEW - почему?!  [new]
Sheriffua
Member

Откуда: г. Киев
Сообщений: 1223
Всем добрый день.
Есть следующая проблема, которая пока не решается, т.к. неизвестно откуда растут ноги. Есть следующая VIEW:
CREATE OR REPLACE VIEW D_PROV
(DEPT, KOD, NAME, D_PROV, NOMER_AKTA, 
 D_POV, NOMPP, NAME_DOC, TYPE_DOC, VB, 
 RD, PG, ST, VSEGO, RAZOM, 
 OSNOVN, STRAFN, PENYA, VIDSKOD, STAN, 
 FACE_MODE, TAX, TYP_PR)
AS 
select substr(i.nompp,7,4) as dept,
       i.TIN as kod,
       i.NAME,
       l.DATEVP as d_prov,
       l.nompp as nomer_akta,
       i.datevp as d_pov,
       i.NOMPP,
       l.name_doc,
       i.TYPE_DOC,
       substr(i.platej,1,2) as vb,
       substr(i.platej,3,4) as rd,
       substr(i.platej,7,2) as pg,
       substr(i.platej,9,2) as st,
       i.SUMM as vsego,
       i.SUMM_R as razom,
       i.SUMM_O as osnovn,
       i.SUMM_S as strafn,
       i.SUMM_P as penya,
       i.SUMM_V as vidskod,
       i.STAN,
       i.FACE_MODE,
       GETZKEXPLIST(i.yearoper,i.c_reg,i.c_raj,i.idrowdoc) tax,
       z.val as typ_pr
       
           from lv_idpov_zk i, ndoc_data_n z, lv_akts l --lv_idpov_zk i и lv_akts l -тоже вьюхи, а  
---ndoc_data_n z - партицированная таблица (может в ней проблема)?
where 
exists (select null from ndoc_uch j where j.type_doc='ZK' and j.idparent=i.idrowdoc and j.datevp>='01.01.2006') 
and exists (select null from ndoc_uch j where j.type_doc='ZK' and j.idparent=i.idrowdoc and j.datevp<='31.12.2999') 
and exists (select null from ndoc_uch where type_doc ='ZK' and idparent =i.idrowdoc) and rownum < 1000000 
and z.idval=712
and z.idrowdoc=i.idperev
AND l.IDPEREV=I.IDPEREV
and (stan like 'Первинний <br/>Вручений <br/>Експортований до КОР<br/>' 
or stan like 'Вручений <br/>Експортований до КОР<br/>Вторинне пов_домлення<br/>'
or stan like 'Первинний <br/>Вив_шений на дошку оголошень<br/>Експортований до КОР<br/>')
  and i.datevp > to_date('01.01.2006', 'dd.mm.yyyy')
order by l.datevp desc, i.tin
/
Ночью запускается батничек который дропает таблицу table d_prov_ и затем из вьюхи пересоздается таблица с таким же именем table d_prov_, но почему-то отрабатывается иногда некорректно, показывается часть информации, часть же не собирается вовсе (т.е. количество записей может только увеличиваться).
Даже если перезапустить вручную батник не всегда он отрабатывается корректно. Что можете сказать? Куда смотреть и где искать выход из этой ситуации?
Версия:
SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi
PL/SQL Release 10.2.0.1.0 - Production
CORE    10.2.0.1.0      Production
TNS for Linux IA64: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production

6 фев 08, 15:40    [5252653]     Ответить | Цитировать Сообщить модератору
 Re: Разные данные из VIEW - почему?!  [new]
Elic
Member

Откуда:
Сообщений: 29976
Sheriffua
j.datevp>='01.01.2006'
Неправильно.
Sheriffua
i.datevp > to_date('01.01.2006', 'dd.mm.yyyy')
Правильно.
6 фев 08, 15:44    [5252689]     Ответить | Цитировать Сообщить модератору
 Re: Разные данные из VIEW - почему?!  [new]
Sheriffua
Member

Откуда: г. Киев
Сообщений: 1223
Elic
Sheriffua
j.datevp>='01.01.2006'
Неправильно.
Sheriffua
i.datevp > to_date('01.01.2006', 'dd.mm.yyyy')
Правильно.


Исправим, неужели только из-за этого поразному выбираются данные?
6 фев 08, 15:48    [5252727]     Ответить | Цитировать Сообщить модератору
 Re: Разные данные из VIEW - почему?!  [new]
ЗлобныйАдмин
Guest
Elic
Sheriffua
j.datevp>='01.01.2006'
Неправильно.
Sheriffua
i.datevp > to_date('01.01.2006', 'dd.mm.yyyy')
Правильно.



такой золобный посылатель на металинк, а про неявное преобразование типов забываешь :) Первое тоже правильно.

По сути топика: Предлагаю автору задать вопрос пану Скочинскому, они вообщето пишут продакшен под 9,2,0,6 потому на 10ке не исключены баги, а вы полным ходом используете функции из ихних пакаджей.
6 фев 08, 15:51    [5252757]     Ответить | Цитировать Сообщить модератору
 Re: Разные данные из VIEW - почему?!  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
Sheriffua
Исправим, неужели только из-за этого поразному выбираются данные?
Ну так может Вы посмотрите, что именно не собирается и от этого будете плясать?
6 фев 08, 15:52    [5252770]     Ответить | Цитировать Сообщить модератору
 Re: Разные данные из VIEW - почему?!  [new]
Elic
Member

Откуда:
Сообщений: 29976
Sheriffua
дропает таблицу table d_prov_ и затем из вьюхи пересоздается таблица с таким же именем table d_prov_
RTFM Materialized Views (FAQ)
6 фев 08, 15:54    [5252783]     Ответить | Цитировать Сообщить модератору
 Re: Разные данные из VIEW - почему?!  [new]
oradba.ru
Member

Откуда: Dublin, Ireland
Сообщений: 106
Для даты 01.01.2006 (и похожих) может и не имеет значения, а для остальных - да.
Вариант 1: i.datevp > to_date('01.11.2006', 'dd.mm.yyyy')
Вариант 2: i.datevp > to_date('01.11.2006', 'mm.dd.yyyy')
6 фев 08, 15:54    [5252785]     Ответить | Цитировать Сообщить модератору
 Re: Разные данные из VIEW - почему?!  [new]
Sheriffua
Member

Откуда: г. Киев
Сообщений: 1223
Jannny
Sheriffua
Исправим, неужели только из-за этого поразному выбираются данные?
Ну так может Вы посмотрите, что именно не собирается и от этого будете плясать?


количество выбираемых данных и не собирается - отличается в разы! (1200 - неправильно, а 4800 правильно), именно в этом беда. Тем более с базой никто в этот момент не работает, т.к. батник отрабатывается ночью.
6 фев 08, 16:00    [5252830]     Ответить | Цитировать Сообщить модератору
 Re: Разные данные из VIEW - почему?!  [new]
Дубовая голова
Member [заблокирован]

Откуда: с цепи сорвался
Сообщений: 1821
Sheriffua
количество выбираемых данных и не собирается - отличается в разы!


И ты нам предлагаешь поиграть в игру "угадай почему" ? Занимательно, но бесполезно.
Анализируй данные.
6 фев 08, 16:03    [5252859]     Ответить | Цитировать Сообщить модератору
 Re: Разные данные из VIEW - почему?!  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
Sheriffua
Jannny
Sheriffua
Исправим, неужели только из-за этого поразному выбираются данные?
Ну так может Вы посмотрите, что именно не собирается и от этого будете плясать?
количество выбираемых данных и не собирается - отличается в разы!
Это не ответ, Вы же можете посмотреть не только количество.

Sheriffua
Тем более с базой никто в этот момент не работает, т.к. батник отрабатывается ночью.
Так думает каждый "батник", который работает ночью
6 фев 08, 16:12    [5252938]     Ответить | Цитировать Сообщить модератору
 Re: Разные данные из VIEW - почему?!  [new]
Andrey.L
Member

Откуда: Харьков
Сообщений: 1546
Не нравятся мне 3 exists'а...
Какие-то они мутные ...
3-й вообще не имеет смысла если первые два нужны ...
Если дата j.datevp должна попадать в диапазон '01.01.2006' - '31.12.2999', то одного exists'а с between вполне достаточно...
6 фев 08, 16:17    [5252983]     Ответить | Цитировать Сообщить модератору
 Re: Разные данные из VIEW - почему?!  [new]
Дубовая голова
Member [заблокирован]

Откуда: с цепи сорвался
Сообщений: 1821
Мне больше всего вот это нравится:

and rownum < 1000000 
...
order by l.datevp desc, i.tin

Очередной пример ламерского ляпа #1
6 фев 08, 16:20    [5253004]     Ответить | Цитировать Сообщить модератору
 Re: Разные данные из VIEW - почему?!  [new]
Вот блин
Guest
Дубовая голова
Sheriffua
количество выбираемых данных и не собирается - отличается в разы!


И ты нам предлагаешь поиграть в игру "угадай почему" ? Занимательно, но бесполезно.
Анализируй данные.


Моя ставка - попытка сравнения значений с Null
:-)
6 фев 08, 16:24    [5253028]     Ответить | Цитировать Сообщить модератору
 Re: Разные данные из VIEW - почему?!  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
Дубовая голова
and rownum < 1000000 
...
order by l.datevp desc, i.tin
Очередной пример ламерского ляпа #1
Не факт, вероятно это просто несвязанные вещи: ограничение выборки(что, конечно, странно во вьюхе, но представить можно) и сортировка результата.
6 фев 08, 16:24    [5253031]     Ответить | Цитировать Сообщить модератору
 Re: Разные данные из VIEW - почему?!  [new]
Sheriffua
Member

Откуда: г. Киев
Сообщений: 1223
Переделали VIEW согласно ваших же замечаний:
CREATE OR REPLACE VIEW D_PROV
(DEPT, KOD, NAME, D_PROV, NOMER_AKTA, 
 D_POV, NOMPP, NAME_DOC, TYPE_DOC, VB, 
 RD, PG, ST, VSEGO, RAZOM, 
 OSNOVN, STRAFN, PENYA, VIDSKOD, STAN, 
 FACE_MODE, TAX, TYP_PR)
AS 
select substr(i.nompp,7,4) as dept,
       i.TIN as kod,
       i.NAME,
       l.DATEVP as d_prov,
       l.nompp as nomer_akta,
       i.datevp as d_pov,
       i.NOMPP,
       l.name_doc,
       i.TYPE_DOC,
       substr(i.platej,1,2) as vb,
       substr(i.platej,3,4) as rd,
       substr(i.platej,7,2) as pg,
       substr(i.platej,9,2) as st,
       i.SUMM as vsego,
       i.SUMM_R as razom,
       i.SUMM_O as osnovn,
       i.SUMM_S as strafn,
       i.SUMM_P as penya,
       i.SUMM_V as vidskod,
       i.STAN,
       i.FACE_MODE,
       GETZKEXPLIST(i.yearoper,i.c_reg,i.c_raj,i.idrowdoc) tax,
       z.val as typ_pr
       
              -- Make by Andrey Stecenko --
from lv_idpov_zk i, ndoc_data_n z, lv_akts l
where 
exists (select null from ndoc_uch j where j.type_doc='ZK' and j.idparent=i.idrowdoc and j.datevp between to_date('01.01.2006','dd.mm.yyyy') and to_date('31.12.2999','dd.mm.yyyy')) 
and exists (select null from ndoc_uch where type_doc ='ZK' and idparent =i.idrowdoc) 
and z.idval=712
--and i.type_doc='4R'
and z.idrowdoc=i.idperev
AND l.IDPEREV=I.IDPEREV
and (stan like 'Первинний <br/>Вручений <br/>Експортований до КОР<br/>' 
or stan like 'Вручений <br/>Експортований до КОР<br/>Вторинне повідомлення<br/>'
or stan like 'Первинний <br/>Вивішений на дошку оголошень<br/>Експортований до КОР<br/>')
  and i.datevp > to_date('01.01.2006', 'dd.mm.yyyy')
order by l.datevp desc, i.tin
/
из нее обычным селектом формируется табличка (утром, когда никто не работает с базой):
create table d_prov_ as
select * from d_prov;
и тупик, не выбираются все данные, почему? Что не так?
Днем когда в ручном ренжиме запускаешь отработку select * from d_prov; не всегда, но формируются данные правильно (сужу по количеству выгружаемых строк из D_PROV)
8 фев 08, 14:23    [5263611]     Ответить | Цитировать Сообщить модератору
 Re: Разные данные из VIEW - почему?!  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
Sheriffua
и тупик, не выбираются все данные, почему? Что не так?
Ответьте для себя - что именно не выбирается. Мы не знаем, что есть не все.

Кстати уже говорилось, что
and exists (select null from ndoc_uch where type_doc ='ZK' and idparent =i.idrowdoc)
лишнее
8 фев 08, 14:28    [5263661]     Ответить | Цитировать Сообщить модератору
 Re: Разные данные из VIEW - почему?!  [new]
Дубовая голова
Member [заблокирован]

Откуда: с цепи сорвался
Сообщений: 1821
Sheriffua

Днем когда в ручном ренжиме запускаешь отработку select * from d_prov; не всегда, но формируются данные правильно (сужу по количеству выгружаемых строк из D_PROV)


И что значит "не всегда" ? Тут уже говорилось - играть в угадайку надо в детском саду.
8 фев 08, 14:32    [5263720]     Ответить | Цитировать Сообщить модератору
 Re: Разные данные из VIEW - почему?!  [new]
agathis
Member

Откуда:
Сообщений: 94
в (select null from ndoc_uch where type_doc ='ZK' and idparent =i.idrowdoc) неплохо бы алиасы поставить. а то ж type_doc не только в ndoc_uch есть.
8 фев 08, 14:38    [5263778]     Ответить | Цитировать Сообщить модератору
 Re: Разные данные из VIEW - почему?!  [new]
Sheriffua
Member

Откуда: г. Киев
Сообщений: 1223
Дубовая голова
Sheriffua

Днем когда в ручном ренжиме запускаешь отработку select * from d_prov; не всегда, но формируются данные правильно (сужу по количеству выгружаемых строк из D_PROV)


И что значит "не всегда" ? Тут уже говорилось - играть в угадайку надо в детском саду.


Как отвветить??? Не всегда это значит через раз иногда через два раза, когда запускаешь скрипт:
select * from d_prov;, другими словами почему-то не выгружаются данные именно по годам, т.е. при отработке скрипта теряется информация по годам....
8 фев 08, 14:40    [5263807]     Ответить | Цитировать Сообщить модератору
 Re: Разные данные из VIEW - почему?!  [new]
Sheriffua
Member

Откуда: г. Киев
Сообщений: 1223
Jannny
Sheriffua
и тупик, не выбираются все данные, почему? Что не так?
Ответьте для себя - что именно не выбирается. Мы не знаем, что есть не все.

Кстати уже говорилось, что
and exists (select null from ndoc_uch where type_doc ='ZK' and idparent =i.idrowdoc)
лишнее


Уважаемая Jannny, я конечно не такой специалист по SQL как вы, но для меня не понятно, как одна и таже вьюха, которая создана 1 раз и из которой ежедневно выбираются данные в таблицу, могут постоянно меняться, они должны только расти (тут я согласен, так количество проверок растет, но никак не падать в разы). Вот я прошу помощи куда можно посмотреть чтобы понять что не так?
8 фев 08, 14:46    [5263882]     Ответить | Цитировать Сообщить модератору
 Re: Разные данные из VIEW - почему?!  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
agathis
в (select null from ndoc_uch where type_doc ='ZK' and idparent =i.idrowdoc) неплохо бы алиасы поставить. а то ж type_doc не только в ndoc_uch есть.
И? :)
8 фев 08, 14:47    [5263901]     Ответить | Цитировать Сообщить модератору
 Re: Разные данные из VIEW - почему?!  [new]
agathis
Member

Откуда:
Сообщений: 94
Jannny
agathis
в (select null from ndoc_uch where type_doc ='ZK' and idparent =i.idrowdoc) неплохо бы алиасы поставить. а то ж type_doc не только в ndoc_uch есть.
И? :)


да ничего, вообще она лишняя, точно.
но я зуб не дам, что она не парсится как (select null from ndoc_uch where i.type_doc ='ZK' and ndoc_uch.idparent =i.idrowdoc)
8 фев 08, 14:51    [5263946]     Ответить | Цитировать Сообщить модератору
 Re: Разные данные из VIEW - почему?!  [new]
Дубовая голова
Member [заблокирован]

Откуда: с цепи сорвался
Сообщений: 1821
Sheriffua
Вот я прошу помощи куда можно посмотреть чтобы понять что не так?


Ах ти, Господи, Твоя воля, дай терпения с этим кадром не убить иго ап стену...

В данные надо смотреть, в данные, которые ты выгружаешь.
И в текст твоего запроса.

Возьми и сделай снапшот данных, из которых ты получаешь свою таблицу,
проанализируй, какие данные не выгрузились по твоему мнению.
Проанализируй, а должны ли они выгружаться согласно логике твоего
запроса. И найди, в чем проблема - может, в запросе, может, в данных,
а может в твоей голове.

Если ты этого сделать не можешь - выпей йаду недецкаво !
8 фев 08, 14:52    [5263957]     Ответить | Цитировать Сообщить модератору
 Re: Разные данные из VIEW - почему?!  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
agathis
но я зуб не дам, что она не парсится как (select null from ndoc_uch where i.type_doc ='ZK' and ndoc_uch.idparent =i.idrowdoc)
Ну если почитать документацию, то в принципе можно и зуб давать :)
8 фев 08, 14:52    [5263961]     Ответить | Цитировать Сообщить модератору
 Re: Разные данные из VIEW - почему?!  [new]
Sheriffua
Member

Откуда: г. Киев
Сообщений: 1223
Дубовая голова
Sheriffua
Вот я прошу помощи куда можно посмотреть чтобы понять что не так?


Ах ти, Господи, Твоя воля, дай терпения с этим кадром не убить иго ап стену...

В данные надо смотреть, в данные, которые ты выгружаешь.
И в текст твоего запроса.

Возьми и сделай снапшот данных, из которых ты получаешь свою таблицу,
проанализируй, какие данные не выгрузились по твоему мнению.
Проанализируй, а должны ли они выгружаться согласно логике твоего
запроса. И найди, в чем проблема - может, в запросе, может, в данных,
а может в твоей голове.

Если ты этого сделать не можешь - выпей йаду недецкаво !


по твоему этот запрс select * from d_prov; - особенный??
8 фев 08, 15:00    [5264049]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Oracle Ответить