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

Sekelumit kisah tentang Nokia N900 - Part I

Bermula dari ketertarikan dengan sebuah perangkat yg menurut review sangat (mungkin paling) mumpuni saat itu, sekitar April - Mei 2010. Setelah baca banyak review juga terhadap perangkat tersebut, akhirnya Saya memutuskan untuk menebus perangkat Nokia N900 tersebut pada 30 Mei 2010 , walaupun untuk mendapatkannya ternyata harus keliling dulu ke beberapa authorized reseller Nokia karena peredarannya agak terbatas. Dan ternyata setelah beberapa waktu menggunakannya memang terbukti sangat mumpuni and the device had satisfied me almost everything I need for a sophisticated device . Setelah hampir 7 bulan menggunakannya (awal Desember 2010), mulai terasa ada keanehan, gejalanya adalah kalo mau dicharge harus dalam posisi berdiri (dimana bagian mini USB Port nya berada diatas) dan kabel chargenya harus diposisikan kebelakang supaya bisa dicharge, kalo tidak begini proses charging nya jadi suka on/off. Waktu itu tidak banyak berprasangka aneh-aneh, cuman berpikiran mungkin emang perlu ada sed...

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...

Configure Oracle APEX 3.2.1 using Embedded PL/SQL Gateway (Unsupported Feature)

Just want to share for those who don't want to setup APEX using Apache HTTP Server with mod_plsql (which will be deprecated according to latest SOD Oracle), instead using pre installed Embedded PL/SQL Gateway on top of XML DB Server feature of Oracle Database, but doesn't have the luxury of newest version of Oracle Database (as latest is 11g). Installation step should be followed normally as documented in installation guide. After APEX component installation complete (no error occured during installation) using SQL/Plus Command: SQL> @apexins SYSAUX SYSAUX TEMP /i/ *) SYSAUX should be replace by another target tablespace created earlier (recommended) For normal installation it should move to point 3.3.5 Configure the Embedded PL/SQL Gateway but after several times installation experience this always causing error 404 Unauthorized . I began to examine the instalation script, and found out that there's missing step in creation/configure of DAD (Database Access Descriptor...