|
|
|
Вызов файла SQL скрипта в цикле
|
|||
|---|---|---|---|
|
#18+
Доброе всем! Не подскажите ли как решить следующую задачу. В различных схемах выполнить однотипный скрипт ( создание таблиц и наполнению их данными) Была идея следующая, в цикле переключать схему и вызывать скрипт @'D:\OMP\TEST_TABLE.sql' (закомментирован) , который будет выполняться под требуемым пользователем Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Но похоже так нельзя :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 18:32 |
|
||
|
Вызов файла SQL скрипта в цикле
|
|||
|---|---|---|---|
|
#18+
PL/SQL выполняется на стороне сервера, поэтому он не сможет запустить TEST_TABLE.sql Сначала, наверное, нужно из TEST_TABLE.sql сделать хранимую процедуру на стороне сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 18:37 |
|
||
|
Вызов файла SQL скрипта в цикле
|
|||
|---|---|---|---|
|
#18+
Alexander Ryndin, Да,тоже так подумал,спасибо. Скрипт, сгенеренный софтом, который требовалось размножить на однотипные схемы. Хотел не плодить процедуры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 18:40 |
|
||
|
Вызов файла SQL скрипта в цикле
|
|||
|---|---|---|---|
|
#18+
IgorSmAlexander Ryndin, Да,тоже так подумал,спасибо. Скрипт, сгенеренный софтом, который требовалось размножить на однотипные схемы. Хотел не плодить процедурызачем плодить процедуры? Одну процедуру, в которой execute immediate делаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 18:41 |
|
||
|
Вызов файла SQL скрипта в цикле
|
|||
|---|---|---|---|
|
#18+
IgorSm, Скрипт a.sql (можно сгенерить) Код: plsql 1. 2. 3. 4. 5. 6. Скрипт b.sql Код: plsql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 19:39 |
|
||
|
Вызов файла SQL скрипта в цикле
|
|||
|---|---|---|---|
|
#18+
Пока сделал так Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Т.е генерю скрипт вида Код: plsql 1. 2. 3. 4. ..... и потом исполняю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 20:32 |
|
||
|
Вызов файла SQL скрипта в цикле
|
|||
|---|---|---|---|
|
#18+
эхх, а в скриптах генерируемых софтом Куда не посмотри Код: plsql 1. не подходит alter session set current_schema ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 21:30 |
|
||
|
Вызов файла SQL скрипта в цикле
|
|||
|---|---|---|---|
|
#18+
Не далее как полтора года назад разгоняли N-поточный ETL в идентичных структурах... Есть возможность пройти replace 'ом по файлу? 1. делается replace Код: sql 1. 2. пишется скрипт Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. сие сгенерит скрипт run.sql Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 3. запускаем полученный скрипт run.sql - PROFIT! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 22:09 |
|
||
|
Вызов файла SQL скрипта в цикле
|
|||
|---|---|---|---|
|
#18+
Продолжу монолог. В итоге, некрасиво, но работает :) ---- Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Где CREATE_TABLE.sql- генерируемый софтом, который создает таблицы, INSERT_TABLE вставка в одноименные таблицы значений Использование CONNECT обусловлено использованием в INSERT_TABLE повсеместного select USER||'.'||'TABLE_NAME' from dual; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 22:14 |
|
||
|
Вызов файла SQL скрипта в цикле
|
|||
|---|---|---|---|
|
#18+
MazoHist, Спасибо. Не заметил ответа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 22:15 |
|
||
|
Вызов файла SQL скрипта в цикле
|
|||
|---|---|---|---|
|
#18+
Итого 2 скрипта Предыдущий вариант не подходил так как после переключения в пользовательскую схему, например shema1 таблицы через alter session уже не создавались Первый под пользователем с правами на создание таблиц, генерирующий через alter session Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 2-й на заполнение, через c_connect_tn Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 23:12 |
|
||
|
Вызов файла SQL скрипта в цикле
|
|||
|---|---|---|---|
|
#18+
2-й на заполнение, через CONNECT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 23:14 |
|
||
|
Вызов файла SQL скрипта в цикле
|
|||
|---|---|---|---|
|
#18+
У меня такая поделка есть: http://orasql.org/2013/04/09/sqlplus-tips-3-iterators-and-recursions/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 23:15 |
|
||
|
Вызов файла SQL скрипта в цикле
|
|||
|---|---|---|---|
|
#18+
Но не более чем 20 раз может рекурсивно вызываться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 23:16 |
|
||
|
Вызов файла SQL скрипта в цикле
|
|||
|---|---|---|---|
|
#18+
Но отселектить нужное количество @скрипт конечно проще ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 23:17 |
|
||
|
Вызов файла SQL скрипта в цикле
|
|||
|---|---|---|---|
|
#18+
xtender, Спасибо. Посмотрю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 23:46 |
|
||
|
Вызов файла SQL скрипта в цикле
|
|||
|---|---|---|---|
|
#18+
И стоит добавить имя сервера Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2016, 00:03 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39353100&tid=1886961]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
137ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 408ms |

| 0 / 0 |
