Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6 7 8 9 10 .. 38   вперед  Ctrl
 Re: Курилка  [new]
Elic
Member

Откуда: 1984. Выбраковка финно-угром продолжается. КЯЗ
Сообщений: 29674
пыщ-пыщ-пыщ
В чем может быть причина?
Не надо искать внешних причин. Они сугубо внутренние. Форум - это, вообще-то, самоорганизующаяся конструкция. Но, под воздействием целенаправленной политики местных власть предержащих, случился постепенный перекос, благодаря чему разнообразный планктон легко и безнаказанно заполонил объём форума, поглощая весь свободный кислород, приводя к застою и отсутствию свежести.
Как результат, тот, кто действительно мог бы воспринять дельный ответ, имеет все шансы не быть замеченным на фоне всего этого бессмысленно кишащего планктона и даже быть заваленным их испражнениями...
24 сен 14, 23:23    [16618619]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 53420
AND (
        rec.KOD_OPER_MOVE <> 12
     OR
        rec.KOD_OPER_MOVE = 12 AND NVL(rec.kddr, 0) = 0
     )
знаю, что выделенное - лишнее, но так вроде понятнее

ЗЫ: rec.KOD_OPER_MOVE not null
25 ноя 14, 14:09    [16902117]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
stax..
Guest
andreymx
AND (
        rec.KOD_OPER_MOVE <> 12
     OR
        rec.KOD_OPER_MOVE = 12 AND NVL(rec.kddr, 0) = 0
     )
знаю, что выделенное - лишнее, но так вроде понятнее

ЗЫ: rec.KOD_OPER_MOVE not null

я так не кодировал имхо запутаней
для меня проще не 12 или kddr=0

и местами можно переставить, в зависимости от смысла

.....
stax
25 ноя 14, 17:17    [16903575]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 53420
Сегодня пришел к мысли, что параметры v$session - module, action и client_info - надо и на удаленных БД устанавливать - которые по db link-у.
Странно, что эта простая мысль не приходила мне в голову ранее.
10 дек 14, 19:12    [16979721]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 53420
Постановщик пишет в заявке
"В инвентаризационной ведомости за март 2015г с *** страницы сумма с минусом, что не допустимо в инвентаризационной ведомости. Прошу исправить эту ошибку до ****г."

Посмотрел - всё честно, данные в таблице сальдо отрицательные. Судя по заявке, откуда они там, ему не интересно.

Написать ему, что ли
автор
данные в таблице сальдо отрицательные, могу добавить предикат
 and s.summa > 0
9 апр 15, 09:00    [17491874]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
booby
Member

Откуда:
Сообщений: 1780
andreymx,
не может такого случиться, что он просто эти суммы в скобочках видеть захотел?
т.е. (5) вместо -5 ?

а по существу - это всего лишь значит, что постановку писал it-шник с чужих слов.
гони в шею. добейся его увольнения или перевода на другую работу любым способом.
нехрен всем подряд за дело болеть. кому-то его делать надо.
9 апр 15, 12:22    [17493062]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 53420
все чаще и чаще :)
                        AND (NVL(fc.vozvrat,0) <> 4 --06.12.2014 Не берем возврат из порта
                             OR
                             p_date_from = DATE '2015-4-1' -- 08-05-2015
                             )
8 май 15, 09:17    [17616299]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5151
В добавление к тому, что в pl/sql не работают nvl2, decode и прочее.
+ кривости парсера с биндами 14032960

Еще пару моментов

declare x int := 2 ** 2; begin null; end;
/
-- ORA-00936: missing expression (in SQL)
select case when dummy = any ('X','Y') then 1 end sign from dual;
/
-- PLS-00204: function or pseudo-column '=ANY' may be used inside a SQL statement only (in PL/SQL)

Кроме того, что исторически добавлен головняк с этими всяиким context switches, так хотя бы функциональность могли сделать единообразную.
16 сен 15, 16:36    [18157180]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
5257автор
Guest
Сделанная на сторону и на коленке задача (мы только исполнители, всё чётко по ТЗ сделали и забыли; отбивались от этой бяки как могли, но шеф таки заставил) долбанулась пользователем
После ввода нескольких тысяч заявок главный пользователь "упорядочил" один из главнейших справочников, перебив названия в порядке сортировки
Что остальные увидели через 3 дня
В результате каша из данных - где-то в заявках id введены по старым названиям, где-то - по новым.
Т.к. задача небольшая, как и ТЗ, как и полученный копейки, то таблиц корректировок и никаких логов нема. Правда, есть копии БД за каждый день.

Вот такая манамба вышла
29 сен 15, 15:25    [18210008]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
ArtNick
Member

Откуда:
Сообщений: 1227
5257автор
После ввода нескольких тысяч заявок главный пользователь "упорядочил" один из главнейших справочников, перебив названия в порядке сортировки

Ламерство какое-то.
Справочники должны быть историцируемы, выборка значения из справочника должна быть на дату документа.
29 сен 15, 15:31    [18210044]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
SQL*Plus
Member

Откуда: Россия, Москва
Сообщений: 7943
ArtNick
5257автор
После ввода нескольких тысяч заявок главный пользователь "упорядочил" один из главнейших справочников, перебив названия в порядке сортировки

Ламерство какое-то.
Справочники должны быть историцируемы, выборка значения из справочника должна быть на дату документа.
Историцируемость всех без исключения листофвэльюсов
обычно наблюдается при маниакальным экстремизме дивелопмента.

:-)
29 сен 15, 16:23    [18210399]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
ArtNick
Member

Откуда:
Сообщений: 1227
SQL*Plus
ArtNick
пропущено...

Ламерство какое-то.
Справочники должны быть историцируемы, выборка значения из справочника должна быть на дату документа.
Историцируемость всех без исключения листофвэльюсов
обычно наблюдается при маниакальным экстремизме дивелопмента.

:-)

Отсутствие историцируемости справочников обычно наблюдается при зашоренности аналитика.
Хотя я склонен с Вами согласиться в случае если сущность является исключением из "все течет, все изменяется".
:)
29 сен 15, 16:32    [18210501]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 53420
Общался с исполнителем, хорошие ребята, но не ораклоиды.
Делают для нас прогу.
Полчаса пытали меня, в каком формате передавать мне дату в процедуру в параметр типа Date.
22 окт 15, 13:18    [18311497]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5151
andreymx,

Я думаю в том топике не очень уместно обсуждать. 18314703
andreymx
а статью опубликовал?
Статью не опубликовал. Заготовка осталась.
Впрочем у меня таких "заготовок" несколько и, возможно, я уже это уже буду в англоязычном варианте выпускать.
23 окт 15, 12:16    [18316096]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 53420
вот что-то мне никак не нравятся NVL в этом MERGE
v_param1 := func1;
v_param2 := func2;

merge into *** e
using ***
on ()
when matched then
update
   set e.param1 = nvl(v_param1, e.param1),
       e.param2 = nvl(v_param2, e.param2);
19 ноя 15, 18:33    [18443130]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
хм...хм...
Guest
если не секрет, из каких соображений не нравиться?

Сообщение было отредактировано: 20 ноя 15, 09:31
20 ноя 15, 09:20    [18445164]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
SQL*Plus
Member

Откуда: Россия, Москва
Сообщений: 7943
andreymx
вот что-то мне никак не нравятся NVL в этом MERGE
v_param1 := func1;
v_param2 := func2;

merge into *** e
using ***
on ()
when matched then
update
   set e.param1 = nvl(v_param1, e.param1),
       e.param2 = nvl(v_param2, e.param2);
Если бы это был чистый UPDATE, тогда было бы понятно, чем это не нравится.
А так - кто его знает...

Покажите команду MERGE целиком.
20 ноя 15, 09:56    [18445286]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 53420
в общем случае - не нравится сам подход
вычислили два значения, но записали только то, которое не пустое. Как в этом случае можно быть уверенным в данных?
20 ноя 15, 10:08    [18445368]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5929
andreymx
в общем случае - не нравится сам подход
вычислили два значения, но записали только то, которое не пустое. Как в этом случае можно быть уверенным в данных?
а в чём сомнения? nvl известно как работает. А такой подход позволяет избирательно обновлять поля не меняя запрос ценою незначительных расходов на компиляцию и вычисление nvl.
20 ноя 15, 10:12    [18445399]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
SQL*Plus
Member

Откуда: Россия, Москва
Сообщений: 7943
andreymx
в общем случае - не нравится сам подход
вычислили два значения, но записали только то, которое не пустое. Как в этом случае можно быть уверенным в данных?

Если у вас всегда выполняется условие
(v_param1 IS NOT NULL OR v_param2 IS NOT NULL)
тогда все нормально, поскольку строка будет неформально обновлена (значение(я) атрибута (ов) изменится)

Если же бывают случаи, когда
(v_param1 IS NULL AND v_param2 IS NULL)
тогда строка будет обновлена формально (значение(я) атрибута (ов) НЕ изменится)
Этот случай предпочтительно отсечь во фразе WHERE.
20 ноя 15, 10:21    [18445459]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5929
SQL*Plus
andreymx
в общем случае - не нравится сам подход
вычислили два значения, но записали только то, которое не пустое. Как в этом случае можно быть уверенным в данных?

Если у вас всегда выполняется условие
(v_param1 IS NOT NULL OR v_param2 IS NOT NULL)
тогда все нормально, поскольку строка будет неформально обновлена (значение(я) атрибута (ов) изменится)

Если же бывают случаи, когда
(v_param1 IS NULL AND v_param2 IS NULL)
тогда строка будет обновлена формально (значение(я) атрибута (ов) НЕ изменится)
Этот случай предпочтительно отсечь во фразе WHERE.


Такое тоже может случиться:
e.param1 = v_param1 and e.param2 = v_param2
. Отсекать это и (v_param1 IS NULL AND v_param2 IS NULL) в Where или нет, зависит еще от требований к блокировке записей и срабатыванию триггеров.
20 ноя 15, 10:32    [18445546]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
хм...хм...
Guest
SQL*Plus
andreymx
в общем случае - не нравится сам подход
вычислили два значения, но записали только то, которое не пустое. Как в этом случае можно быть уверенным в данных?

Если у вас всегда выполняется условие
(v_param1 IS NOT NULL OR v_param2 IS NOT NULL)
тогда все нормально, поскольку строка будет неформально обновлена (значение(я) атрибута (ов) изменится)

Если же бывают случаи, когда
(v_param1 IS NULL AND v_param2 IS NULL)
тогда строка будет обновлена формально (значение(я) атрибута (ов) НЕ изменится)
Этот случай предпочтительно отсечь во фразе WHERE.


зачем проверять в where, если это только 2 поля обновляются проверять что они оба not null надо до merge (в условии if)
20 ноя 15, 10:54    [18445733]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5151
К вопросу о правильном выборе инструмента
SQL> select sum((sqrt(rownum))) x
  2    from dual
  3  connect by level <= 1000000;

         X
----------
 666667166

Elapsed: 00:00:01.04
SQL> select sum((power(rownum, .5))) x
  2    from dual
  3  connect by level <= 1000000;

         X
----------
 666667166

Elapsed: 00:00:42.94
15 дек 15, 16:53    [18563856]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
-2-
Member

Откуда:
Сообщений: 15199
dbms_photoshop,

В доматсопроцессорную эпоху решал задачку на турбопаскале, где наиболее тяжелым оказалось вычисление целого квадратного корня от целого числа. В результате набросал процедурку вычисления двубитовым столбиком на ассемблере. Получил ускорение в 200 раз по сравнению со встроенной sqrt, которая гоняла корень степенным рядом на своем real.
15 дек 15, 17:18    [18563975]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 53420
помню, для 1С:7.7 писал вычисление степени, лет 15 назад
в то время этой функции там не было :)
15 дек 15, 17:44    [18564106]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6 7 8 9 10 .. 38   вперед  Ctrl
Все форумы / Oracle Ответить