Skip to main content

Memproses CSV yg di upload menggunakan APEX

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:
SQL> desc apex_application_files
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>
Insight yg didapatkan adalah:

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

Popular posts from this blog

Configure Reverse Proxy Apache 2 for Oracle APEX 4.0

Just taking note reminder for myself, it's about how to configuring Apache 2 HTTP Server (Not OHS come with Compl CD of Oracle Database) as a front end HTTP Server for APEX 4.0 installed in Oracle XE 10g. Just follow the step as explain below: Install Apache 2.2 Server (Source can be downloaded from http://httpd.apache.org/download.cgi) installed with listening port configure at 8888 Install Oracle XE 10g Database (Download from http://www.oracle.com/technetwork/database/express-edition/downloads/index.html) installed with listening port configure at 7777 Install APEX 4.0 (Download from http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html) After those development tools installed last thing to do is Configure Apache2 to become front server and static images server for APEX 4.0 then do the following steps: Enable/Activate module mod_proxy, proxy_http_module with LoadModule Directive. Configuration example: LoadModule proxy_module /usr/...

Sekelumit kisah tentang Nokia N900 - Part III (Happy Ending)

Seperti yg pernah Saya ceritakan pada Sekelumit kisah tentang Nokia N900 - Part II dan Sekelumit kisah tentang Nokia N900 - Part I dimana tersimpulkan bahwa: Respon default NCP terhadap masalah perangkat diluar kemampuan / yg pernah diberitahukan sesuai standard operation repair adalah "Kesalahan User" (User Error). Sebagai contoh masalah yg menimpa perangkat Saya (USB Port nya terlepas) padahal sejak Februari 2010 Nokia sendiri sudah mengakui bahwa ada kemungkinan Port USB N900 bisa terlepas walaupun tidak terjadi mistreatment terhadap perangkat. Ternyata mungkin tidak semua Nokia Care Point (NCP) mendapatkan informasi ini secara lengkap (Entah mungkin saja sebenarnya NCP kebanyakan meningkatkan kompetensinya dengan metode learning by doing & learn by mistake/error) . Setelah melalui proses yg sebenarnya tidak perlu seperti adu mulut, kencengin urat leher, pasang muka seram dsb nya, perangkat Saya sudah diperbaiki sesuai Garansi dan sudah berfungsi normal. Perangkat...