#sql #oracle #plsql #toad
Вопрос:
У меня есть несколько сценариев PL/SQL, которые изо дня в день преобразуют данные в соответствии со спецификацией. Я хотел бы запустить их в цикле для каждого дня в году. Можно ли с этим как-то справиться в Жабе?
Я обнаружил , что могу запускать некоторые другие сценарии, вызывая их через @name_of_script, но это не работает для меня в Toad.
Мне просто нужно что-то вроде:
BEGIN
FOR i IN day1 TO dayx
EXECUTE SQL1;
EXECUTE SQL2;
EXECUTE SQL3;
END LOOP;
END
Есть ли какой-либо способ каким-либо образом «управлять» этими сценариями, кроме как изменить их на процедуры? Спасибо вам за ответ.
Комментарии:
1. Почему Жаба ? Разве вы не можете просто использовать sqlplus с
FOR /L %I (1,1,365) DO (sqlplus @script_1; sqlplus @script_2; sqlplus @script_3; )
помощью ?2. @Zilog80, которого может не хватать
in
? Но отличная идея, я буду использовать это 🙂3. @WilliamRobertson Да, спасибо. Я скучал по этому… Я должен сделать некоторый jscript для предварительной проверки, чтобы заранее проверить свой синтаксис ^^. Исправленный синтаксис, включающий базовое распараллеливание и день в качестве
amp;1
параметра для sql-скрипта :FOR /L %I IN (1,1,365) DO (sqlplus @script_1 %I amp;; sqlplus @script_2 %I amp;; sqlplus @script_3 %I amp;; )
.
Ответ №1:
@
является командой SQLPlus
Но жаба частично поддерживает и это: есть 2 общих варианта:
- Используйте редактор SQL — он должен выполнять сценарии в случае
@
команды, как в SQL*Plus - Используйте «Выполнить как сценарий» —> «Выполнить через SQL plus»: он должен запустить SQL*plus, подключенный к вашей базе данных, там вы можете запускать свои сценарии.
Комментарии:
1. Пожалуйста, если я добавлю туда больше вызовов @script.sql, они будут выполняться последовательно или параллельно?
2. пожалуйста, вы можете помочь? Потому что я не уверен (из-за соответствующего порядка сообщений об ошибках), что SQL Plus запускает все сценарии «параллельно» или «последовательно», если они выполняются в одном цикле.