UTL_FILE Package Untuk Membuat Report TAB Delimiter

plsqlHari ini saya berhasil eksplore tentang report tab delimiter tingakat dasar , yaitu mengeksport sebuah table ke dalam bentuk text atau csv menggunakan PLSQL oracle karena status saya seorang technical consultan di perusahaan consultan erp oracle jadi saya harus tahu tentang report tab delimiter, karena sebuah bank terkemuka di indonesia menggunakan report tab delimiter yang cukup susah bisnis prosesnya, langsung aja ya kita bikin tablenya dulu, script nya di bawah ini :


CREATE TABLE PO_TAB2
(
SEGMENT1 VARCHAR2(20 BYTE) NOT NULL,
ITEM_CODE VARCHAR2(40 BYTE),
QUANTITY NUMBER
)
TABLESPACE APPS_TS_TX_DATA
PCTUSED 0
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 128K
NEXT 128K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;
CREATE INDEX PO_HEADERS_N10 ON PO_TAB2
(DECODE(RTRIM("SEGMENT1",'0123456789'),NULL,TO_NUMBER("SEGMENT1"),(-1)))
LOGGING
TABLESPACE APPS_TS_TX_IDX
PCTFREE 10
INITRANS 11
MAXTRANS 255
STORAGE (
INITIAL 16K
NEXT 128K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
NOPARALLEL;

setelah membuat tabel diatas maka selanjutnya isi datanya , sebenarnya itu adalah sebagian kecil dari table PO_HEADERS_ALL kalau yang tahu tabel di oracle e-bs sih kalau nggak juga nggak papa tinggal isi datanya via toad atau aplikasi yang lain yang penting ada datanya.

selanjutnya kita buat path direktory oracle caranya :
CREATE OR REPLACE DIRECTORY REPORT_TAB AS '/u0/oracle/REPORT_TAB';

penjelasanya kita create path direktory REPORT_TAB dan direktori di SO (sistem Operasi) /u0/oracle/REPORT_TAB
selanjutnya adalah membuat procedure agar bisa membuat report tab delimiternya

CREATE OR REPLACE PROCEDURE APPS.REPORT_TAB2 (
p_filename in varchar2,
p_segment in varchar2) IS
CURSOR C1 IS
select SEGMENT1,ITEM_CODE,QUANTITY
from PO_TAB2 where SEGMENT1 = p_segment;
R1 C1%ROWTYPE;
v_file UTL_FILE.FILE_TYPE;
BEGIN
v_file := UTL_FILE.FOPEN ('REPORT_TAB',p_filename, 'W', 32767);
FOR R1 IN C1
LOOP
UTL_FILE.PUT(v_file,R1.SEGMENT1||','||R1.ITEM_CODE||','||R1.QUANTITY);
UTL_FILE.NEW_LINE(v_file);
END LOOP;
UTL_FILE.FCLOSE(v_file);
END;

Prosedur diatas merupakan procedure untuk mengenerate txt files atau csv files.

selanjutnya kita panggil procedure itu

begin
REPORT_TAB ('joko.csv','999');
end;

dan hasilnya adalah  ini saya contohkan via putty ya

puutyy

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s