Skip to Main Content

Upload documents to database using EPG

I did see interesting post how upload documents to Oracle database using Oracle HTTP server. Here is example how you can do same with Embed PL/SQL Gateway.

First create table to store documents:

CREATE TABLE documents(
    name        VARCHAR2(256) UNIQUE NOT NULL,
    mime_type   VARCHAR2(128),
    doc_size    NUMBER,
    dad_charset VARCHAR2(128),
    last_updated DATE,
    content_type VARCHAR2(128),
    blob_content BLOB
  )
/

Download and compile package.

Create public synonyms and grant privileges to DAD user:

/* public synonyms and grants */
CREATE PUBLIC SYNONYM doc_api FOR doc_api;
GRANT EXECUTE ON doc_api TO ANONYMOUS;
GRANT ALL ON documents TO ANONYMOUS;
CREATE PUBLIC SYNONYM documents FOR documents;

Create new DAD. You need run commands as SYS:

/* create new DAD */
BEGIN
dbms_epg.create_dad('DOCAPI','/pls/*');
dbms_epg.set_dad_attribute('DOCAPI','database-username','ANONYMOUS');
dbms_epg.set_dad_attribute('DOCAPI','default-page','doc_api.upload');
dbms_epg.set_dad_attribute('DOCAPI','document-table-name','documents');
dbms_epg.set_dad_attribute('DOCAPI','document-path','docs');
dbms_epg.set_dad_attribute('DOCAPI','nls-language','american_america.al32utf8');
dbms_epg.set_dad_attribute('DOCAPI','document-procedure','doc_api.download');
dbms_epg.set_dad_attribute('DOCAPI','request-validation-function','doc_api.authorize');
END;
/

Go to URL:

http://<host>:<port>/pls/doc_api.upload

and upload files directly to DOCUMENTS table.

Comments

No comments yet on this post