powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Запуск скрипта по расписанию
25 сообщений из 28, страница 1 из 2
Запуск скрипта по расписанию
    #39788603
Roomon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Есть SQL-скрипт примерно на 400 строк:
1. Идет обращение к другой базе через DBlink
2. Создаются исходные таблицы с текущей датой в названии таблицы
3. Идет преобразование путем создания и удаления промежуточных таблиц на основе исходных
4. Формируются конечные таблицы

Далее по расписанию у меня запускается скрипт на Python, обращается к конечным таблицам базы и делает рассылку аналитических отчетов по почте пользователям.

Задача запускать этот скрипт автоматически по расписанию, либо по обращению через Python.
Пробовал сделать PROCEDURE через EXECUTE IMMIDIATE, но похоже, что весь скрипт туда полностью вставить нельзя.
Код: sql
1.
2.
3.
4.
5.
6.
7.
create or replace procedure test
as 
begin 
    execute immediate 'drop table t1;
    create table t1 as
    (select * from t2)'; 
end; 


Код: sql
1.
2.
3.
begin 
   test; 
end;



Error report -
ORA-00911: неверный символ
ORA-06512: на "test", line 4
ORA-06512: на line 2
00911. 00000 - "invalid character"
*Cause: identifiers may not start with any ASCII character other than
letters and numbers. $#_ are also allowed after the first
character. Identifiers enclosed by doublequotes may contain
any character other than a doublequote. Alternative quotes
(q'#...#') cannot use spaces, tabs, or carriage returns as
delimiters. For all other contexts, consult the SQL Language
Reference Manual.
*Action:

Как возможно автоматизировать эту задачу?
...
Рейтинг: 0 / 0
Запуск скрипта по расписанию
    #39788611
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RoomonКак возможно автоматизировать эту задачу?

Бардак автоматизации не поддаётся.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Запуск скрипта по расписанию
    #39788612
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RoomonКак возможно автоматизировать эту задачу?
Велосипедостроительство вечно :)
Воспользуйтесь лучше ETL-инструментами.
...
Рейтинг: 0 / 0
Запуск скрипта по расписанию
    #39788620
Roomon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, почему же. Если автоматизировать бардак, то будет автоматизированный бардак ))

andrey_anonymous, согласен, что велосипед строю, но есть скрипт, который работает. Запускаю его по запросу коллег и высылаю результаты. Хотелось бы минимальными усилиями поставить на поток. С ETL-инструментами боюсь быстро не разберусь...

А если про конкретику говорить, то в рамках EXECUTE IMMIDIATE невозможно запустить последовательно несколько команд?
...
Рейтинг: 0 / 0
Запуск скрипта по расписанию
    #39788625
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RoomonЕсли автоматизировать бардак, то будет автоматизированный бардак ))

Тогда cron тебе в руки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Запуск скрипта по расписанию
    #39788627
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roomonминимальными усилиямиа нажатие кнопки "выполнить скрипт" это максимальные усилия?
...
Рейтинг: 0 / 0
Запуск скрипта по расписанию
    #39788630
Roomon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, да, буду смотреть в эту сторону. Спасибо.

-2-, "нажатие кнопки" это не поставить на поток.
...
Рейтинг: 0 / 0
Запуск скрипта по расписанию
    #39788650
oragraf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roomon,

1. execute immediate выполняет стейтмент, а не "скрипт" в твоем понимании.
2. зачем таблицу дропать? Чистить не вариант?
...
Рейтинг: 0 / 0
Запуск скрипта по расписанию
    #39788662
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oragraf2. зачем таблицу дропать? Чистить не вариант?

Очевидно он прогулял лекцию на которой рассказывали о GTT.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Запуск скрипта по расписанию
    #39788770
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Запуск скрипта по расписанию
    #39788794
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viewer+ Private Temporary Tables in Oracle Database 18c + пресловутый execute immediate на все манипуляции.
...
Рейтинг: 0 / 0
Запуск скрипта по расписанию
    #39788807
Roomon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
oragraf, я понял, что execute immediate выполняет только один стейтмент. Есть похожая штука, чтобы выполнить несколько стейтментов, не выделяя каждый отдельный стейтмент через execute immediate?

Таблицы могу и чистить (и временные использовать при необходимости), но это же всё равно будет несколько стейтментов, или нет?
...
Рейтинг: 0 / 0
Запуск скрипта по расписанию
    #39788851
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RoomonЕсть похожая штука, чтобы выполнить несколько стейтментовSQL*Plus
...
Рейтинг: 0 / 0
Запуск скрипта по расписанию
    #39788885
Ikir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RoomonА если про конкретику говорить, то в рамках EXECUTE IMMIDIATE невозможно запустить последовательно несколько команд?

Но никто не запрещает выполнить последовательность EXECUTE IMMIDIATE ...
...
Рейтинг: 0 / 0
Запуск скрипта по расписанию
    #39788979
MazoHist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roomonoragraf, я понял, что execute immediate выполняет только один стейтмент. Есть похожая штука, чтобы выполнить несколько стейтментов, не выделяя каждый отдельный стейтмент через execute immediate?

Таблицы могу и чистить (и временные использовать при необходимости), но это же всё равно будет несколько стейтментов, или нет?
Читаем определение, что есть statement в oracle. Немного думаем, пытаемся выполнить
Код: plsql
1.
2.
3.
 begin
   execute immediate 'begin null; null; null; end;';
 end;

, медитируем над результатом. Потом ищем инфу про DML и DDL и понимаем, что скрипт as is в execute immediate запихнуть не получится.
PS: python launcher.py script.sql засунуть в cron не подходит?
...
Рейтинг: 0 / 0
Запуск скрипта по расписанию
    #39788991
merch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MazoHistчто скрипт as is в execute immediate запихнуть не получится

Код: plsql
1.
2.
3.
4.
5.
6.
begin
  execute immediate 'create table test_mazo as select * from dual connect by level < 100';
end;
/

select * from test_mazo;
...
Рейтинг: 0 / 0
Запуск скрипта по расписанию
    #39788992
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
merch, снимись с ручника.
...
Рейтинг: 0 / 0
Запуск скрипта по расписанию
    #39788993
merch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic, вероятно, чтение темы было слишком поверхностным.
...
Рейтинг: 0 / 0
Запуск скрипта по расписанию
    #39788997
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViewerDimitry SibiryakovGTT
+ Private Temporary Tables in Oracle Database 18c Этакий унитаз, у которого, сделав дела, не нужно руками дергать ручку смыва.
...
Рейтинг: 0 / 0
Запуск скрипта по расписанию
    #39789093
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot AmKad]ViewerЭтакий унитаз, у которого, сделав дела, не нужно руками дергать ручку смыва.

я мечтал о тмп табличках (пусть и global) без генерации undo/redo (без возможности rollback)

.....
stax
...
Рейтинг: 0 / 0
Запуск скрипта по расписанию
    #39789121
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxя мечтал о тмп табличках (пусть и global) без генерации undo/redo (без возможности rollback)Есть с 8.0
...
Рейтинг: 0 / 0
Запуск скрипта по расписанию
    #39789166
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-Staxя мечтал о тмп табличках (пусть и global) без генерации undo/redo (без возможности rollback)Есть с 8.0

не знал
для общего развития можно ссылку?

.....
stax
...
Рейтинг: 0 / 0
Запуск скрипта по расписанию
    #39789169
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxдля общего развития
temporary tablespace не защищается redo :)
...
Рейтинг: 0 / 0
Запуск скрипта по расписанию
    #39789171
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-Есть с 8.0

Но с UNDO. Без UNDO в 12C если TEMP_UNDO_ENABLED=TRUE.

SY.
...
Рейтинг: 0 / 0
Запуск скрипта по расписанию
    #39789173
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYНо с UNDO. Без UNDO в 12C если TEMP_UNDO_ENABLED=TRUE.


Упс, имел ввиду "но с REDO для UNDO". Без REDO для UNDO в 12C если TEMP_UNDO_ENABLED=TRUE

SY.
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Запуск скрипта по расписанию
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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