Таблица, используемая при выборе курсора, реструктурируется из времени компиляции во время выполнения - PullRequest
0 голосов
/ 28 июня 2018

Я получаю CALL Failed. [7691] SP_name:Table used in cursor select is restructured from compile-time to run-time.

Я верю, потому что в моей хранимой процедуре есть циклические даты:

If min_mnth <= max_mnth THEN
        LoopMnth:
        FOR cc_mnth AS cc_cdates CURSOR FOR
            SELECT To_Char(calendar.calendar_date, 'yyyy-mm') as mnth
            from sys_calendar.calendar
            where To_Char(calendar.calendar_date, 'yyyy-mm') between min_mnth and max_mnth
            and mnth not in (select report_mnth from tb1)
            and mnth >= '2017-08'
            group by 1 order by 1
.....

Интересный факт, что такая процедура иногда работает, в основном тогда у меня было меньше итераций цикла.

Я нашел только эту соответствующую информацию https://community.teradata.com/t5/Database/Error-7691-P1-Table-used-in-cursor-select-is-restructured-from/td-p/36691

Они предлагают SET SESSION DATEFORM = INTEGERDATE - та же ошибка.

О чем эта ошибка и как ее исправить?

1 Ответ

0 голосов
/ 29 июня 2018

Тогда вы получите такую ​​ошибку, просто

1) SET SESSION DATEFORM = INTEGERDATE
2) Recreate your procedure
...