Как динамически экспортировать данные из нескольких таблиц в plsql - PullRequest
0 голосов
/ 09 июля 2019

У меня есть SP plsql, который ежедневно создает несколько таблиц, однако количество таблиц не всегда одинаково, однако сгенерированные таблицы имеют предопределенный шаблон в своем имени.

Япытаясь создать SP plsql, который экспортирует эти таблицы в файл csv или excel, основываясь на вводе списка с именем сгенерированных таблиц.

Любые идеи для достижения этой цели, а не использования PLSQL или есть какие-либо полезныеспособ достижения этого с ним?

Заранее спасибо

1 Ответ

1 голос
/ 09 июля 2019

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

Для начала вам нужен инструмент для создания файла Excel. Антон Шеффер разработал пакет, который можно использовать для простого создания файла Excel из курсора. Посмотрите: Создайте Excel-файл с PL / SQL .

Далее вы можете определить созданные таблицы и создать строку запроса, которую вы можете передать в качестве параметра в query2sheet процедуру пакета Антона. Все таблицы вы можете найти в user_tables Просмотр.

Итак, ваш код может выглядеть так:

for rec in (select * from user_tables where 1=1 /* or condition you need to filter the correct tables*/)
loop

  -- as_xlsx -  is a package created by Anton Scheffer
  as_xlsx.query2sheet( 'select * from '||rec.table_name );

  -- MY_DIR is a database Directory that you have to create
  as_xlsx.save( 'MY_DIR', rec.table_name||'.xlsx' );


end loop;

Edit:

Если вы хотите создать CSV-файлы, то вы можете использовать пакет, разработанный Уильямом Робертсоном, Ссылка курсора на конвертер CSV . Использование очень похоже на пакет Excel.

...