[PL/SQL] Automatyczna wykonanie zestawu zapytań + zapis wyniku.

0

Cześć,

Prośba o radę.
Mam paczkę kilkudziesięciu zapytań (zwykłe Selecty ze złączeniami i warunkami - jest ich ok 25 w pliku)
Każde zapytanie w jednym z warunków ma okres dat z którego ma zwracać wynik (DATA BEETWEEN DATA). Całość zamykam w pliku .sql

Wykonując zapytania, w każdym zapytaniu muszę najpierw odręcznie zmienić daty, wykonać je wszystkie i każdy wynik zapisać później jako oddzielny plik .xls

Nie mam możliwości zakładać procedur i ingerować w harmonogram wykonania skryptów na bazie danych, nie posiadam uprawnień administratora - mogę jedynie wykonywać zapytania.
poprzez ORACLE DEVELOPER. Moje pytanie brzmi, czy można taką paczkę zapytań przygotować inaczej - może w formie jakiegoś skryptu, w taki sposób aby wykonywały się kolejne zapytania i automatycznie zapisywały wynik do plików .xls?

Z góry dzięki za pomoc.
Pozdrawiam
P.

Czy jest

0

Faktycznie tworzysz excela czy csv.

Czy na maszynie na której to puszczasz masz excela?

1

a czy jesteś w stanie pobrać te pliki z katalogów na serwerze? Możliwe katalogi dostaniesz jak wykonasz zapytanie SELECT * FROM all_directories
jeśli tak to możesz napisać sobie skrypt na kształt tego

define dateFrom = 'to_date(''2017.01.01'', ''yyyy.mm.dd'')'
define dateTo = 'to_date(''2017.01.31'', ''yyyy.mm.dd'')'

DECLARE 
  file_handle utl_file.file_type;
BEGIN 
    --pierwszy raport
  file_handle := utl_file.fopen('BACKUP_DIR', 'plik1.csv', 'w', 32767);
  FOR a IN (
    SELECT ... FROM ... WHERE data between &&dateFrom and &&dateTo
  ) LOOP 
    utl_file.put_line(file_handle, a.pole_1 || ',' || a.pole_2 || ',' || a.pole_3 ...);
  END LOOP;
  utl_file.fclose(file_handle);
  
  --kolejny raport
  file_handle := utl_file.fopen('BACKUP_DIR', 'plik2.csv', 'w', 32767);
  FOR a IN (
    SELECT ... FROM ... WHERE data between &&dateFrom and &&dateTo
  ) LOOP 
    utl_file.put_line(file_handle, a.pole_1 || ',' || a.pole_2 || ',' || a.pole_3 ...);
  END LOOP;
  utl_file.fclose(file_handle);  
END;
/

zapisuje niestety do csv ale excel też to łyka bez problemów. Pola trzeba sobie poskładać samemu, tam gdzie tekstowe to wypadało by je wziąć w "". BACKUP_DIR w fopen to jeden z katalogów z pierwszego zapytania. No i najważniejsze - to zapisuje plik na serwerze a nie na kliencie

1 użytkowników online, w tym zalogowanych: 0, gości: 1