Skip to Main Content
  • Questions
  • in the report upload each documents by row

Breadcrumb

Question and Answer

Connor McDonald

Thanks for the question, Rajesh.

Asked: January 15, 2025 - 12:09 pm UTC

Last updated: February 14, 2025 - 2:59 am UTC

Version: 22.24

Viewed 100+ times

You Asked

i have 1st table MIT_DOCUMENTS_LIST_MASTER with columns and data
ID DOCUMENTS_LIST
1 Passport Copy
2 Visa Application Form
3 Company Cover Letter
4 Invitation Letter

second table VISA_ON_ARRIVAL_COUNTRIES columns and data

id     COUNTRY_ID   COUNTRY_NAME   VISA_REQUIRED   VISA_ON_ARRIVAL_COUNTRIES      DOCUMENTS_LIST         CREATED_ON       LAST_MODIFIED
1   45     Germany             Y              N                    1:2:3:5:4:6:7:9    01/15/2026    01/15/2026



third table only columns columns
CREATE TABLE VISA_DOCUMENTS_UPLOADS (
    ID NUMBER GENERATED BY DEFAULT AS IDENTITY,  
    COUNTRY_ID NUMBER,                          
    DOCUMENT_ID NUMBER, 
    FILENAME VARCHAR2(4000 BYTE),                
    FILE_MIMETYPE VARCHAR2(512 BYTE),
    FILE_BLOB BLOB, 
    FILE_CHARSET VARCHAR2(512 BYTE),             
    SAMPLE_DOCUMENT BLOB,                       
    FORM_TEMPLATE BLOB,                         
    UPLOADED_DOCUMENT BLOB,                   
    PREVIEW_DOCUMENT VARCHAR2(4000),             
    FILE_COMMENTS VARCHAR2(4000 BYTE),           
    CREATED TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP,  
    CREATED_BY VARCHAR2(255 BYTE),               
    UPDATED TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP, 
    UPDATED_BY VARCHAR2(255 BYTE),               
    CONSTRAINT pk_visa_documents_uploads PRIMARY KEY (ID)  
);  


now i have to create one report whn i select country that country documents list will be shown in the report like this

Docid Document Name   SampleDocuments FormTemplates     Upload Documents Preview Uploaded Documents Mimetype File Size

1 Passport Copy        Download     Download         chose_file                  Preview  
2 Visa Application Form Downloa     Download         chose_file             Preview  


you see the above report format where upload documemnts i need to upload document for each document and store in the database of table VISA_DOCUMENTS_UPLOADS and i have one button save when i click on that button then it should store in the database

thisis the report query
SELECT 
    d.ID AS DOCUMENT_ID,
    d.DOCUMENTS_LIST AS DOCUMENT_NAME,
    MAX(CASE WHEN vu.SAMPLE_DOCUMENT IS NOT NULL THEN 
         '<a href="download_sample?p_id=' || vu.ID || '" target="blank">Download</a>' 
         ELSE 'Sample not Available' END) AS SAMPLE_DOCUMENTS,
    MAX(CASE WHEN vu.FORM_TEMPLATE IS NOT NULL THEN 
         '<a href="download_template?p_id=' || vu.ID || '" target="blank">Download</a>' 
         ELSE 'Template not Available' END) AS FORM_TEMPLATES,
    '<input type="file" ' AS UPLOAD_FILLED_FORM_BUTTON,
    MAX(CASE WHEN vu.PREVIEW_DOCUMENT IS NOT NULL THEN 
         '<a href="' || vu.PREVIEW_DOCUMENT || '" target="_blank" id="preview_document_' || vu.ID || '">Preview</a>' 
         ELSE 'No Preview Available' END) AS PREVIEW_UPLOADED_DOCUMENTS,
    MAX(vu.FILE_MIMETYPE) AS Mimetype,
    MAX(sys.dbms_lob.getlength(vu.file_blob)) AS file_size
FROM 
    VISA_ON_ARRIVAL_COUNTRIES v
JOIN 
    MIT_DOCUMENTS_LIST_MASTER d
    ON INSTR(':' || v.DOCUMENTS_LIST || ':', ':' || d.ID || ':') > 0
LEFT JOIN 
    VISA_DOCUMENTS_UPLOADS vu
    ON v.COUNTRY_ID = vu.COUNTRY_ID AND d.ID = vu.DOCUMENT_ID
WHERE 
    v.COUNTRY_ID = :P124_CITIZENSHIP_COUNTRY
GROUP BY 
    d.ID, d.DOCUMENTS_LIST
ORDER BY 
    d.ID;

i want process to insert each document kindly help me even modify the report query i need the scenerio should work propoplry

and Connor said...

Sorry, I'm a bit lost on what you are trying to achieve here. It looks to me like you already have the query you need to list the documents required.


SQL>
SQL> create table MIT_DOCUMENTS_LIST_MASTER  (
  2    id int,
  3    documents_list varchar2(30));

Table created.

SQL>
SQL> insert into MIT_DOCUMENTS_LIST_MASTER values (1, 'Passport Copy');

1 row created.

SQL> insert into MIT_DOCUMENTS_LIST_MASTER values (2, 'Visa Application Form');

1 row created.

SQL> insert into MIT_DOCUMENTS_LIST_MASTER values (3, 'Company Cover Letter');

1 row created.

SQL> insert into MIT_DOCUMENTS_LIST_MASTER values (4, 'Invitation Letter  ');

1 row created.

SQL> insert into MIT_DOCUMENTS_LIST_MASTER values (5, 'Invitation Letter  ');

1 row created.

SQL> insert into MIT_DOCUMENTS_LIST_MASTER values (6, 'Invitation Letter  ');

1 row created.

SQL>
SQL> create table VISA_ON_ARRIVAL_COUNTRIES
  2  (id int,
  3   ctry varchar2(20),
  4   DOCUMENTS_LIST varchar2(20)
  5  );

Table created.

SQL>
SQL> insert into VISA_ON_ARRIVAL_COUNTRIES  values (1,'Germany','1:2:3');

1 row created.

SQL> insert into VISA_ON_ARRIVAL_COUNTRIES  values (2,'Spain','1:2:3:4');

1 row created.

SQL> insert into VISA_ON_ARRIVAL_COUNTRIES  values (3,'Mexico','1:2:3:4:5');

1 row created.

SQL>
SQL>
SQL> select *
  2  from visa_on_arrival_countries v
  3  join mit_documents_list_master d
  4  on instr(':' || v.documents_list || ':', ':' || d.id || ':') > 0;

        ID CTRY                 DOCUMENTS_LIST               ID DOCUMENTS_LIST
---------- -------------------- -------------------- ---------- ------------------------------
         1 Germany              1:2:3                         1 Passport Copy
         1 Germany              1:2:3                         2 Visa Application Form
         1 Germany              1:2:3                         3 Company Cover Letter
         2 Spain                1:2:3:4                       1 Passport Copy
         2 Spain                1:2:3:4                       2 Visa Application Form
         2 Spain                1:2:3:4                       3 Company Cover Letter
         2 Spain                1:2:3:4                       4 Invitation Letter
         3 Mexico               1:2:3:4:5                     1 Passport Copy
         3 Mexico               1:2:3:4:5                     2 Visa Application Form
         3 Mexico               1:2:3:4:5                     3 Company Cover Letter
         3 Mexico               1:2:3:4:5                     4 Invitation Letter
         3 Mexico               1:2:3:4:5                     5 Invitation Letter

12 rows selected.



More to Explore

CLOB/BLOB/etc

Complete documentation on Securefiles and Large Objects here