cara ini gw lakuin di unix.
biar lebih mudah gw pisah-pisah filenya sesuai dengan fungsinya.
pertama buat file execute buat jalanin file sql, isinya sbb :
#/bin/sh
ORACLE_HOME=/app/oracle/product/10.2.0/Db_1
export ORACLE_HOME
#jika memang belum diset path oracle homenya
ORACLE_SID=ORACLE_SID
export ORACLE_SID
#sama juga seperti oracle_home
#jika pathnya sudah diset di os-nya gak perlu lagi jalanin perintah diatas
date
cd /export/home/
#supaya posisi direktori berada di file yg mau gw jalanin
$ORACLE_HOME/bin/sqlplus user/password @allSelect.sql
date
#biar gw tau mulai jam berapa dan kelar jam berapa ini query.
#End of File---
kedua buat file sql yang berfungsi untuk menampung file-file sql lain yang akan di jalankan
--Start file
@@dailySql1.sql
@@dailySql2.sql
exit
--End of file
nah yg ketiga ini adalah query yg diperlukan, tapi dikasih contoh yg dailySql1.sql aja :
SET VERIFY OFF
SET FEEDBACK OFF
SET TERMOUT OFF
-- Dates, changes format date
ALTER SESSION SET NLS_DATE_FORMAT = 'DD-Mon-YYYY';
--COLUMN S NEW_VALUE start_date
SELECT trunc(sysdate-1) S FROM dual;
---- + Debug, digunakan kalau melakukan query dengan input date
--DEFINE start_date = &1
---- - Debug, Read from command line
-- Spool File
DEFINE spool_file = dailySql_&start_date..txt
SET PAGESIZE 0
SET LINESIZE 220
-- Linesize adalah jumlah maksimal karakter yg akan ditampung
SET SPACE 1
BREAK ON REPORT
SPOOL &spool_file
select id||"|"||nama||"|"||alamat||"|"||no_telp from nama_table
where tanggal between trunc(sysdate-1) and trunc(sysdate);
SPOOL OFF
CLEAR BREAKS
SET TERMOUT ON
SET VERIFY ON
SET FEEDBACK ON
Saturday, February 23, 2008
SQL Loader
cara menjalankan sql loader :
sqlldr userid=user/password control=/export/home/loader.ctl log=/export/home/loader.log bad=/export/home/loader.bad
loader.log dan loader.bad akan terbuat dengan sendirinya setelah menjalankan perintah load
isi dari loader.ctl :
load data infile '/export/home/dataloader.txt' into table nama_table fields terminated by "|" TRAILING NULLCOLS (ID,NAMA,ALAMAT,NO_TLP)
TRAILING NULLCOLS dimaksudkan jika ada salah satu field yg kosong maka diabaikan, dan akan melanjutkan loader kedata selanjutnya.
sqlldr userid=user/password control=/export/home/loader.ctl log=/export/home/loader.log bad=/export/home/loader.bad
loader.log dan loader.bad akan terbuat dengan sendirinya setelah menjalankan perintah load
isi dari loader.ctl :
load data infile '/export/home/dataloader.txt' into table nama_table fields terminated by "|" TRAILING NULLCOLS (ID,NAMA,ALAMAT,NO_TLP)
TRAILING NULLCOLS dimaksudkan jika ada salah satu field yg kosong maka diabaikan, dan akan melanjutkan loader kedata selanjutnya.
Subscribe to:
Posts (Atom)