Skip to main content

Move BLOB files into Oracle Directory

Solution:

Step 1: Click Oracle Directories to understand about directory creation.

Step 2: Create plsql procdure blob_to_file. It move BLOB files into respected database directories.

CREATE OR REPLACE
PROCEDURE blob_to_file(
    p_blob     IN OUT nocopy BLOB,
    p_dir      IN VARCHAR2,
    p_filename IN VARCHAR2)
AS
  l_file utl_file.file_type;
  l_buffer RAW(32767);
  l_amount binary_integer := 32767;
  l_pos      INTEGER           := 1;
  l_blob_len INTEGER;
BEGIN
  l_blob_len := dbms_lob.getlength(p_blob);
  -- Open the destination file.
  l_file := utl_file.fopen(p_dir, p_filename,'wb', 32767);
  -- Read chunks of the BLOB and write them to the file until complete.
  WHILE l_pos <= l_blob_len
  LOOP
    dbms_lob.READ(p_blob, l_amount, l_pos, l_buffer);
    utl_file.put_raw(l_file, l_buffer, TRUE);
    l_pos := l_pos + l_amount;
  END LOOP;
  -- Close the file.
  utl_file.fclose(l_file);
EXCEPTION
WHEN OTHERS THEN
  -- Close the file if something goes wrong.
  IF utl_file.is_open(l_file) THEN
    utl_file.fclose(l_file);
  END IF;
  raise;
END blob_to_file;

Step 2: Call the procedure and test it.

  • Store BLOB in database
  • Push BLOB files into directory


CREATE TABLE store_blob_clob_files
  (
    id NUMBER,
    blob_content BLOB,
    clob_content CLOB
  );

DECLARE
  l_blob BLOB;
BEGIN
  -- Get BLOB file

  SELECT blob_content
    INTO l_blob
    FROM store_blob_clob_files
   WHERE ID = 1;

  -- Push BLOB files into directory

  blob_to_file (p_blob => l_blob,
                        p_dir  => 'TEMP',
                        p_filename => 'samplereport.pdf'
                       );

END;

Step 3: Check the generated file exists in the directory.

Related Posts:

Comments

Popular posts from this blog

Printing Page Numbers in RTF Template [Oracle BI Publisher]

Here I am giving an example to print the page numbers dynamically in the RTF (Rich Text Format) template. Step 1:  Go to page footer and copy and paste the below script. Page |  <?fo:page-number?>  of  <?fo:page-number-citation:xdofo:lastpage-joinseq?> <fo:page-number> :   This is the object, which is used to represent the current page-number. <?fo:page-number-citation:xdofo:lastpage-joinseq?> :  This is the syntax, which is used to represent the total number of pages. Step 2:  Load the XML and preview the result. Output: That's it. References: fo:page-number Printing Page Number Code in Oracle XMLP RTF Template

Friendly URL: Redirect to Different Page after Login in Oracle APEX 20.1

Oracle has updated apex.oracle.com to APEX 20.1 which includes among other features the new Friendly URL option. Here i am giving an example to redirect to different page after login in Oracle APEX 20.1 [Friendly URL Enabled] Step 1: Define home page for each user in emp master table as below Step 2: To enable Friendly URL Syntax, follow below steps, 1) On the Workspace home page, click the App Builder icon. 2) Select an application (The Application home page appears). 3) From Application home page, you can access the Definition page in TWO ways: Click the Edit Application Properties button. From Shared Components:              1) Click Shared Components .              2) Under Application Logic, click Application Definition Attributes . The Definition page appears. 4) Under Properties, configure the Friendly URL s attribute: Click Apply Changes to save your ch...

Open modal/inline dialog in Oracle APEX using JS

Analysis: From Oracle Apex 4.2,  Inline dialog can be opened as modal dialog/popup using JS. Open inline dialog region as modal dialog: Step 1: Create static region. Step 2:  Set Template => Inline Dialog. Step 3:  Assign the static id to the region. Fig 1: Set template and Static ID Step 4:  Create button or change one of the report column type to Link. (Action: Redirect URL). Step 5:  Put the below JS to open the region as modal dialog.                javascript:openModal('unitpricedetails');            Fig 2:  Open simple modal dialog Open inline dialog region as modal dialog and pass values to the items: Common Steps:  Step 1 to Step 4. Step 5:  To pass value to that region, create P1_UNIT_ID in the inline  dialog.       javascript:$s('P1_UNIT_ID','#UNIT_ID#');javascript:openModal('unitpricedetai...