2015-11-18 8 views
0

Я хочу экспортировать таблицу в файл Excel. Мне нужно экспортировать отчет.Экспорт отчета в Excel

ORA_EXCEL.new_document; 
ORA_EXCEL.add_sheet('Sheet name'); 
ORA_EXCEL.query_to_sheet('select * from mytable'); 
ORA_EXCEL.save_to_blob(myblob); 

Я сохранил свой стол в блобе.

Как я могу экспортировать/ответить пользователю (клиенту)?

Мне нужно что-то, что просто позволить пользователю загрузить файл Excel на свой компьютер. Я пытался делать эту процедуру в рабочем процессе Oracle:

ORA_EXCEL.save_to_file('EXPORT_DIR', 'example.xlsx'); 

Но это не помогло, потому что это сохраняет файл в директорию на сервере, и мне нужно это в реальном сервере.

+1

вы не можете сохранить документ своему клиенту, потому что сервер базы данных не имеет представления о вашем клиенте. вы можете разделить каталог оракула с клиентом, запустить скрипт и затем скопировать результат на клиент; или нужно написать некоторую логику (функция, веб-сервис и т. д.).), который подготовит файл xls, а затем передаст его клиенту. – are

+0

Возможно, ваше приложение может отправить электронную таблицу пользователю по электронной почте. –

ответ

0

То, как я справлялся с подобными проблемами в прошлом, заключался в том, чтобы работать с пользователями системы для монтирования каталога с веб-сервера или файлового сервера на сервере базы данных.

Затем создайте объект каталога, чтобы процедура могла быть сохранена в местоположении, доступном пользователю.

Если файлы не чувствительны и ограниченное количество пользователей, тогда файловый сервер имеет смысл, так как это просто вопрос предоставления пользователю доступа к файловому ресурсу.

Если файлы чувствительны или это большое количество или неизвестные пользователи, мы использовали веб-сервер и отправили электронное письмо со ссылкой на пользователя, позволяющего загружать их файл. Естественно, в этом должна быть встроена защита, чтобы люди не могли загружать файлы других пользователей.

Мы не только по электронной почте файлов как вложение, потому что ...

1) сообщений электронной почты с вложениями, как правило, блокируются

2) Мы всегда рекомендуем не открывать вложения в электронных письмах. (Да, я знаю, что мы советуем не нажимать на ссылки, но ничего не получается)

+0

Я добавил этот blob в таблицу, затем из таблицы я дал ссылку пользователю =)) – Altynbek

0

Кто или что вызывает производство документа?

Если это приложение выполняется пользователем, это приложение может извлекать BLOB и сохраняет его на f.e. TEMP-Directory и вызывает System.Diagnostics.Process.Start("...");, чтобы открыть его с помощью связанного приложения. (См Open file with associated application)

Если It'sa сайт, это один может течь блоб обратно в Excel-MIMETYPE (см Setting mime type for excel document)

Также вы можете хранить в Oracle-каталог, но это один должен быть на сервер и должен быть сетевым доходом для доступа к клиентам (который редко принимается в продуктивной среде!)

Если MAIL не является решением, возможно, FTP может быть способом хранения файлов в общем виде доля. См. UTL_TCP - Пакет, с этим можно добиться FTP-передачи (немного сложно кодировать, но есть решения для поиска в Интернете), и я думаю, профессиональные инструменты, которые генерируют документы Office из Oracle-DB и распространяют их делай это так.

Смежные вопросы