#sql #xml #oracle
#sql #xml #Oracle
Вопрос:
У меня есть отчет, который мне нужно запускать каждый день в 00:00 и экспортировать всю информацию из таблицы в определенное место с определенным именем.
Пример:
select * from my_table
where date between SYSTIMESTAMP -2 and SYSTIMESTAMP -1
и экспортировать это в файл date.xml .
Возможно ли это с помощью Oracle SQL Developer или мне нужны другие инструменты?
Ответ №1:
Нет версии Oracle, поэтому я предполагаю, что 10 или 11.
Чтобы запланировать свой процесс, вам просто нужно создать задание и запланировать его. Задание должно запустить ваш скрипт (который может быть функцией или хранимой процедурой). Вот документация: http://docs.oracle.com/cd/B28359_01/server.111/b28310/scheduse.htm#i1033533
Для записи в файл вы можете использовать команду spool в SQL. Здесь вы можете найти документацию: http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12043.htm
Это действительно просто в использовании.
spool @path/nomefile
la tua query
spool off
Очевидно, что компьютер, с которого вы запускаете скрипт, должен иметь права на запись на компьютере, на котором вы собираетесь записать файл (я говорю это, потому что я часто забываю проверить).
Создание XML-файла немного сложнее и требует немного времени для объяснения здесь, но в сообществе Oracle есть хороший пост, который объясняет это и приводит простой и практичный пример: https://community.oracle.com/thread/714758?start=0amp;tstart=0
Если вы не хотите использовать задание в Oracle, вы можете написать SQL-файл с командами подключения, командой спула и вашим запросом и запланировать его на серверной машине, на которой вы собираетесь установить в качестве простой команды sqlplus.