Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.04;
Скачать: CL | DM;

Вниз

Левое внешнее объединение 2х хранимых процедур   Найти похожие ветки 

 
Avreliy   (2003-08-12 18:13) [0]

Здравствуйте мастера!
Не могу понять, что неправильно в следующем коде:(отрывок ХП)
--------------------------------------------------
..
BEGIN
DELETE FROM DEPP;
Temp = GEN_ID(DEPNO_GEN, -GEN_ID(DEPNO_GEN, 0));
INSERT INTO DEPP(EMPLOYEENO, POST, SURNAME, SUMM, QTY, TOTALSUMM)
SELECT SP1.EMPLOYEENO, SP1.POST, SP1.SURNAME, SP1.SUMM,
SP1.QTY, SP2.TOTALSUMM
FROM SP_DEPP_DATE_ALL(:DEP, :DAT) SP1 LEFT OUTER JOIN
SP_DEPP_DATE_TOTALSUMM(:DEP, :DAT) SP2 ON SP1.EMPLOYEENO = SP2.EMPLOYEENO;
END^

--------------------------------------------------
Не хочет возвращать данные. Но вот, если левое внешнее объединение заменить внутренним, то всё работает.
--------------------------------------------------
..
BEGIN
DELETE FROM DEPP;
Temp = GEN_ID(DEPNO_GEN, -GEN_ID(DEPNO_GEN, 0));
INSERT INTO DEPP(EMPLOYEENO, POST, SURNAME, SUMM, QTY, TOTALSUMM)
SELECT SP1.EMPLOYEENO, SP1.POST, SP1.SURNAME, SP1.SUMM,
SP1.QTY, SP2.TOTALSUMM
FROM SP_DEPP_DATE_ALL(:DEP, :DAT) SP1, SP_DEPP_DATE_TOTALSUMM(:DEP, :DAT) SP2
WHERE SP1.EMPLOYEENO = SP2.EMPLOYEENO;
END^

--------------------------------------------------
В то же время запрос
--------------------------------------------------

SELECT SP1.EMPLOYEENO, SP1.POST, SP1.SURNAME, SP1.SUMM,
SP1.QTY, SP2.TOTALSUMM
FROM SP_DEPP_DATE_ALL(:DEP, :DAT) SP1 LEFT OUTER JOIN
SP_DEPP_DATE_TOTALSUMM(:DEP, :DAT) SP2 ON SP1.EMPLOYEENO = SP2.EMPLOYEENO;

--------------------------------------------------
работает правильно.


 
Desdechado ©   (2003-08-12 19:52) [1]

попробуй явное приведение типов


 
kaif ©   (2003-08-13 00:09) [2]

А отдельно select-запрос (без insert-а) работает?
Или дает ошибку no current record for fetch operation?
Вообще объединения процедур иногда работают неправильно. Особенно левые. Можно попытаться изменить и текст самих процедур. Иногда это помогает. Например, у меня бывали проблемы с union внутри процедур.


 
kaif ©   (2003-08-13 00:13) [3]

Извиняюсь, проглядел... Сам запрос работает. Это уже хуже. А что значит не хочет возвращать данные? Ошибку генерит или просто ничего не инсертит?


 
Praco ©   (2003-08-13 09:03) [4]

http://www.ibase.ru/devinfo/dontdoit.htm
Посмотри п.14
Может это твой случай?



Страницы: 1 вся ветка

Текущий архив: 2003.09.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
3-10607
Владий
2003-08-13 15:14
2003.09.04
Помогите разрешить проблему...


4-11024
Rumata
2003-07-01 19:35
2003.09.04
Трей, онтоп и все все все


1-10824
Someone ...
2003-08-21 12:13
2003.09.04
TActionToolBar& TActionMainMenuBar vs Russian HotKeys


14-10887
Fants
2003-08-14 16:21
2003.09.04
Перекомпиляция


1-10741
Fog
2003-08-19 19:00
2003.09.04
Синтаксис RTF