[ОТВЕТИТЬ]
Опции темы
15.06.2010 18:04  
John Doe
Чтобы не было вопросов :)

Код:
SQL> with monday as (select trunc(sysdate)+15-TO_NUMBER(TO_CHAR(trunc(sysdate), 'D')) "mon" from dual)
  2  select decode(mod(TO_NUMBER(TO_CHAR("mon", 'DD')),2),0,"mon"+7,"mon")from monday;

DECODE(M
--------
05.07.10
 
15.06.2010 18:06  
vdm
Цитата:
Сообщение от deucel
Где?

Эта ошибка - при подключении через клиента от reports 6i.
Он не понимает with.
 
15.06.2010 19:54  
PavelGS
сделал пока что так, потом буду пробовать
Код:
CREATE OR REPLACE TRIGGER SUPERMAG.LMMATRIXCHANGE
BEFORE DELETE OR INSERT
ON SUPERMAG.SMASSORTMATRIX 
FOR EACH ROW
DECLARE
dayForZak  int;
i int;
DDATE date;
DTEMP date;
IVT int;
f boolean;
BEGIN
SELECT TO_NUMBER(VALUE) into dayForZak FROM SUPERMAG.LMCONFIG WHERE PARM='day_for_vvod';
DTEMP := TO_DATE('01.01.2010','DD.MM.YYYY');
IVT := 0;
f := false;

     FOR i in 1..366 loop
        if (weekd(DTEMP) = dayForZak) then     
            IVT := IVT + 1;
        end if;
            
            if TO_CHAR(DTEMP,'DD.MM.YYYY') = TO_CHAR(sysdate,'DD.MM.YYYY') then
                f := true;
                end if;
        
                    
        if (weekd(DTEMP) = dayForZak) AND (IVT / 2 <> TRUNC (IVT / 2)) then
            if f = true then
               exit;
            end if;
        end if;  
                
            DTEMP := DTEMP + 1;
    end loop;

   
if inserting or updating then
INSERT INTO LMMATRIXACTIONS(ARTICLE,ACTIONDATE,OWNER,ACTION,MATRIXID,LOCATION,ZAKDATE) 
VALUES (:New.ARTICLE,SYSDATE,USER,'insert',:New.IDMATRIX,(SELECT STORELOC FROM SMASSORTMATRIXLOC WHERE IDMATRIX=:New.IDMATRIX),DTEMP);

else
INSERT INTO LMMATRIXACTIONS(ARTICLE,ACTIONDATE,OWNER,ACTION,MATRIXID,LOCATION) VALUES 
(:Old.ARTICLE,SYSDATE,USER,'delete',:Old.IDMATRIX,(SELECT STORELOC FROM SMASSORTMATRIXLOC WHERE IDMATRIX=:Old.IDMATRIX));
end if;   
END LMMATRIXCHANGE;
/
 
16.06.2010 11:50  
deucel
Цитата:
Сообщение от vdm
Он не понимает with.
Бывает, попробуй тогда так:

Код:
SELECT DAY
  FROM (SELECT     fromdate + LEVEL - 1 DAY
              FROM (SELECT TO_DATE ('01062010', 'DDMMYYYY') fromdate, TO_DATE ('01062010', 'DDMMYYYY') + 14 todate
                      FROM DUAL)
        CONNECT BY LEVEL <= todate - fromdate + 1)
 WHERE TO_CHAR (DAY, 'D') = 1 AND TO_NUMBER (TO_CHAR (DAY, 'DD')) / 2 != TRUNC (TO_NUMBER (TO_CHAR (DAY, 'DD')) / 2)
--AND ROWNUM = 1
 
 


Опции темы



Часовой пояс GMT +3, время: 11:52.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.