Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ошибка ora-00942 / 9 сообщений из 9, страница 1 из 1
27.01.2017, 13:10
    #39392951
maxwait
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка ora-00942
Добрый день! наверное сейчас услышу в свой адрес много лестных слов, прошу сильно не ругать, т.к. в оракле не силен.
есть запрос и вне процедуры выполняется
Код: 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
27.01.2017, 13:12
    #39392954
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка ora-00942
maxwaitкак только я делаю из него процедуруТОП №4
...
Рейтинг: 0 / 0
27.01.2017, 13:13
    #39392959
maxwait
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка ora-00942
Elic,

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

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

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


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