Setelah mencari-cari cara untuk memenuhi kebutuhan seperti judul blog ini beberapa waktu,...
Akhirnya pencarian mendapatkan setitik pencerahan dari 2 link berikut:
http://avdeo.com/2008/05/21/uploading-excel-sheet-using-oracle-application-express-apex/
dan
http://application-express-blog.e-dba.com/?p=1728
Dari 2 tips tersebut tampaknya jika langsung memproses binary file XLS (MS Excel) belum berhasil tetapi karena kebutuhan nya sudah bisa dicukupi dgn mengubah format file ke CSV (Coma Separated Value), akhir Saya putuskan untuk mencobanya.
Mengenai bagaimana menggunakan fitur dasar File Upload dgn APEX bisa dipelajari di sini.
Sekarang yg akan dijelaskan adalah post upload process dari APEX tersebut.
Semua file yg diupload dgn APEX akan tersimpan di tabel APEX_APPLICATION_FILES yg merupakan alias/synonym ke tabel WWV_FLOW_FILES.
Struktur Tabel APEX_APPLICATION_FILES:
Target Table dari Upload CSV adalah MSGP_PURCHASEITEM_ALL dengan struktur sbb:

XLS File yg disesuaikan dengan Target Table seperti berikut ini:

APEX Page yang disiapkan (belum dirapihkan jadi jangan dikomentari mengenai kualitas layout)

Dan hasilnya adalah,....

Untuk bagaimana handling back end dan Behind the Scene Scenario nya,... read my next post.
Akhirnya pencarian mendapatkan setitik pencerahan dari 2 link berikut:
http://avdeo.com/2008/05/21/uploading-excel-sheet-using-oracle-application-express-apex/
dan
http://application-express-blog.e-dba.com/?p=1728
Dari 2 tips tersebut tampaknya jika langsung memproses binary file XLS (MS Excel) belum berhasil tetapi karena kebutuhan nya sudah bisa dicukupi dgn mengubah format file ke CSV (Coma Separated Value), akhir Saya putuskan untuk mencobanya.
Mengenai bagaimana menggunakan fitur dasar File Upload dgn APEX bisa dipelajari di sini.
Sekarang yg akan dijelaskan adalah post upload process dari APEX tersebut.
Semua file yg diupload dgn APEX akan tersimpan di tabel APEX_APPLICATION_FILES yg merupakan alias/synonym ke tabel WWV_FLOW_FILES.
Struktur Tabel APEX_APPLICATION_FILES:
SQL> desc apex_application_filesInsight yg didapatkan adalah:
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NOT NULL NUMBER
FLOW_ID NOT NULL NUMBER
NAME NOT NULL VARCHAR2(90)
FILENAME VARCHAR2(400)
TITLE VARCHAR2(255)
MIME_TYPE VARCHAR2(48)
DOC_SIZE NUMBER
DAD_CHARSET VARCHAR2(128)
CREATED_BY VARCHAR2(255)
CREATED_ON DATE
UPDATED_BY VARCHAR2(255)
UPDATED_ON DATE
LAST_UPDATED DATE
CONTENT_TYPE VARCHAR2(128)
BLOB_CONTENT BLOB
LANGUAGE VARCHAR2(30)
DESCRIPTION VARCHAR2(4000)
FILE_TYPE VARCHAR2(255)
FILE_CHARSET VARCHAR2(128)
SQL>
Jika CSV file yang diupload tersebut (tersimpan dalam bentuk BLOB di kolom BLOB_CONTENT) dibaca baris demi baris, kemudian dipindahkan kedalam array (dalam PL/SQL istilahnya Collections) setelah itu dimasukkan kedalam tabel tujuan dengan mengambil nilai Array tersebut tentunya bisa dilakukan bukan? Hanya saja sudah barang tentu harus dalam format yg Common dan terbuka seperti CSV.Dengan contoh dan pola yg dijelaskan oleh 2 tips diatas,... Here is what I've acomplished,..
Target Table dari Upload CSV adalah MSGP_PURCHASEITEM_ALL dengan struktur sbb:

XLS File yg disesuaikan dengan Target Table seperti berikut ini:

APEX Page yang disiapkan (belum dirapihkan jadi jangan dikomentari mengenai kualitas layout)

Dan hasilnya adalah,....

Untuk bagaimana handling back end dan Behind the Scene Scenario nya,... read my next post.
Comments