Я пытался каждую минуту планировать обновление трех материализованных представлений. Я использовал код нижеПланировщик работы с СУБД для материализованного представления
BEGIN
DBMS_SCHEDULER.CREATE_JOB
(
JOB_NAME => 'REFRESH_MVIEW',
JOB_TYPE => 'PLSQL_BLOCK',
JOB_ACTION => 'BEGIN DBMS_MVIEW.REFRESH("m_view1, m_view2, m_view3",''C''); END;',
NUMBER_OF_ARGUMENTS => 0,
START_DATE => SYSTIMESTAMP,
REPEAT_INTERVAL => 'FREQ=DAILY; BYHOUR=0',
END_DATE => NULL,
ENABLED => TRUE,
AUTO_DROP => FALSE,
COMMENTS => 'JOB TO REFRESH'
);
END;
Но я получаю следующее сообщение об ошибке после того, как работа была запущена
ORA-12012: ошибка автоматического выполнения из работы 57179 ORA-06550: строка ORA-06550 : строка 1, столбец 495: PLS-00114: идентификатор 'm_view1, m_view2' слишком долго , колонка:
Я понимаю, что существует ограничение на 30 символов в имени процедуры. Итак, значит ли это, что я должен разделить работу на 3 разных рабочих места? Не могли бы вы сообщить мне, где я ошибаюсь?
Спасибо заранее!
Двойные кавычки ('" ') используются для разделения идентификаторов - в вашем случае, однако, вы хотите, чтобы передать строку буквальным, так что вы должны использовать одинарные кавычки (' ' '). Поскольку он находится внутри другой строки, вам нужно избегать их ('' ''), но часто проще использовать синтаксис новой цитаты, например 'q '[BEGIN DBMS_MVIEW.REFRESH (' m_view1, m_view2, m_view3 ',' C '); END;]' ' –