Създаване на Excel файл от избран с параметри, използвайки чист PL

Цели, които исках да постигна

  • Excel, в резултат на избор, чийто текст процедурата разпознава само по време на изпълнение
  • Изборът преди изпълнение се променя в съответствие с параметрите, които процедурата получава
  • На процедурата се предават параметрите на файла, който ще бъде създаден.
  • Възможност за получаване на получения файл във формати Excel Workbook, CSV, HTML, XML
PL/SQL съхранената процедура получава в параметри
  • изберете текст
  • Опции за файл на Excel
  • опции за изпълнение
и създава пълноценен Excel с няколко таблици (листа). Знам, че има Crystal Reports и Oracle BI Publisher. Но, първо, това са големи продукти (с високи цени. ), а Publisher, доколкото знам, не работи като отделен модул без Oracle Business Intelligence Enterprise Edition. И освен това ставаше дума за доста тясната задача за създаване на файл без оформление.

И накрая, написах един PL/SQL пакет, който се намира в базата данни и може да бъде извикан от всяко приложение. В процеса на писане се сблъсках с много ограничения и искам да говоря за това как ги преодолях.

За тези, които се съмняват, аз, разбира се, не можех да знам това предварително, но от няколко години, когато пакетът работи в голяма компания, нямах проблеми с намаляването на RDF с всякаква сложност, с много тригери / формули, в един избор, похвала на Oracle. Напротив, тъй като select е низов параметър и може да се създава динамично, това дава голяма гъвкавост. В параметрите можете дори да зададете името на таблицата. Първо, не съдете строго за изобилието от англицизми (така се казва според мен), просто съм извън българската софтуерна общност от доста време и не знам каквозамени тези думи.

Много често в приложенията, написани на Oracle Forms/Reports, Oracle*Reports се използва за създаване на Excel файл, тъй като там е възможно да се използват параметри и да се променя изборът, преди да бъде изпълнен. След това изходът се записва във файла в тригера на ниво изходен ред. Получава се csv файл. Е, можете, разбира се. Ако трябва да създадете pdf с Excel, тогава не можете да отидете никъде, използвайте отчети и не се оплаквайте как тази програма ви е направила. Но в края на краищатасамоExcel често е необходим и някак си не искате да оградите RDF за това.

Приблизително такъв комплект. Мисля, че тук всичко е ясно. Малко думи:

LIMIT_ROWS, LIMIT_LEN ви позволяват да разделите получения файл по време на процеса на създаване, когато се достигнат граничните стойности, на няколко правилни Excel.

LITERAL_PARAMS казва как да използвате параметри за изпълнение - вмъкнете стойности или извършете избор в dbms_sql с dbms_sql.bind_variable.

OUT_TYPE задава формата: Excel Workbook,CSV,HTML,XML