powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ошибка ora-00942
9 сообщений из 9, страница 1 из 1
ошибка ora-00942
    #39392951
maxwait
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день! наверное сейчас услышу в свой адрес много лестных слов, прошу сильно не ругать, т.к. в оракле не силен.
есть запрос и вне процедуры выполняется
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
BEGIN

  DECLARE
       v_DateOthet date := p_DateOtchet;
       v_CID NUMBER;
       v_DateBegin date;
       v_DateEnd date;
       v_mounth number;
       
       CURSOR c_Depcells IS
       SELECT c.ID, p.date_begin , p.date_end , round(MONTHS_BETWEEN(trunc(p.Date_End), trunc(p.Date_begin))) mm
       from table1 c
       join table2 p on p.Contract_Id = c.id

       where p.date_begin <= v_DateOthet and (c.date_close > v_DateOthet or c.date_close is null);
        
        BEGIN
          OPEN c_Dep;
          LOOP
            FETCH c_Dep INTO v_CID, v_DateBegin, v_DateEnd, v_mounth ;
            EXIT WHEN c_Dep%NOTFOUND;
                 FOR i IN 0 .. v_mounth-1
                   LOOP
                   INSERT INTO TBL_DATA (CONTRID,DATE_BEGIN,DATE_END, MOUNTH,LASTWORKDAYINMOUNTH) 
                   select v_CID,v_DateBegin,v_DateEnd,v_mounth
                          , case when trunc(Last_Day(ADD_MONTHS(v_DateBegin,i))) <= v_DateEnd
                                 then trunc(Last_Day(ADD_MONTHS(v_DateBegin,i)))
                      else trunc(v_DateEnd) end 
                   from dual;
                   COMMIT;
                   END LOOP;
          END LOOP;
          CLOSE c_Dep;
        END;
END;



как только я делаю из него процедуру

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
CREATE OR REPLACE PROCEDURE Get_DATA (
       p_DateOtchet DATE
)
IS
BEGIN

  DECLARE
       v_DateOthet date := p_DateOtchet;
       v_CID NUMBER;
       v_DateBegin date;
       v_DateEnd date;
       v_mounth number;
       
       CURSOR c_Depcells IS
       SELECT c.ID, p.date_begin , p.date_end , round(MONTHS_BETWEEN(trunc(p.Date_End), trunc(p.Date_begin))) mm
       from table1 c
       join table2 p on p.Contract_Id = c.id
       where p.date_begin <= v_DateOthet and (c.date_close > v_DateOthet or c.date_close is null);
        
        BEGIN
          OPEN c_Dep;
          LOOP
            FETCH c_Dep INTO v_CID, v_DateBegin, v_DateEnd, v_mounth ;
            EXIT WHEN c_Dep%NOTFOUND;
                 FOR i IN 0 .. v_mounth-1
                   LOOP
                   INSERT INTO TBL_DATA (CONTRID,DATE_BEGIN,DATE_END, MOUNTH,LASTWORKDAYINMOUNTH) 
                   select v_CID,v_DateBegin,v_DateEnd,v_mounth
                          , case when trunc(Last_Day(ADD_MONTHS(v_DateBegin,i))) <= v_DateEnd
                                 then trunc(Last_Day(ADD_MONTHS(v_DateBegin,i)))
                      else trunc(v_DateEnd) end 
                   from dual;
                   COMMIT;
                   END LOOP;
          END LOOP;
          CLOSE c_Dep;
        END;
END;



выдает ошибку ORA-00942 вот на этой строке хотя таблица есть и вне процедуры выполняется корректно join table2 p on p.Contract_Id = c.id
Заранее спасибо!
...
Рейтинг: 0 / 0
ошибка ora-00942
    #39392954
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxwaitкак только я делаю из него процедуруТОП №4
...
Рейтинг: 0 / 0
ошибка ora-00942
    #39392959
maxwait
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,

Я так и знал)) ну блин простите ))
...
Рейтинг: 0 / 0
ошибка ora-00942
    #39392961
maxwait
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему Вы так категорично относитесь к новичкам?)
...
Рейтинг: 0 / 0
ошибка ora-00942
    #39392968
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Следующая ошибка будет "PLS-00201: identifier 'C_DEP' must be declared".
...
Рейтинг: 0 / 0
ошибка ora-00942
    #39392971
maxwait
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ладно , понятно придется самому) ладно извините)
...
Рейтинг: 0 / 0
ошибка ora-00942
    #39392984
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxwaitПочему Вы так категорично относитесь к новичкам?)Топ - это верх. В данном случае - форума. Там ищешь ответ на свой вопрос №4.
...
Рейтинг: 0 / 0
ошибка ora-00942
    #39392986
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxwaitладно , понятно придется самому) ладно извините)

ответы читайте в них смысла больше, чем вам кажется ..
...
Рейтинг: 0 / 0
ошибка ora-00942
    #39392997
maxwait
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,

СПАСИБО!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ошибка ora-00942
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]