Friday, November 13, 2009

SqlPlus Problem 1 - Parameter Passing Problem

Sekedar memo supaya aku ngga lupa dengan koding konyol macam ini. :P

Problem : mengirim 2 argumen lalu dipakai sebagai nama file pada sqlplus script.

Cukup sediakan :
Notepad & Sample data pada Oracle.

Dibawah ini adalah isi dari Test.bat
Koding dimulai setelah tanda (-).
---------------------------------------------------

@echo off
REM ===============================
REM FileName : Test.bat
REM ===============================

set /P Name="Please input Your Name>"
set /P ID="Please input Your ID>"
set FileName=Member_%Name%_%ID%.txt

sqlplus username/password@DbName @QueryResultToFile.sql %Name% %ID%

pause

---------------------------------------------------
Koding berakhir sebelum tanda (-).

Dibawah ini adalah isi dari QueryResultToFile.sql
Koding dimulai setelah tanda (-).
---------------------------------------------------

set termout off
set feedback off
set verify off
set pagesize 0
set linesize 500
set trimspool on

spool QueryResult_&1._&2..txt;
SELECT * FROM TabelName where Name='&1' AND ID='&2';
spool off;
exit;

---------------------------------------------------
Koding berakhir sebelum tanda (-).

Perhatikan
"spool QueryResult_&1._&2..txt;"
ini akan menghasilkan file text dengan nama
"QueryResult_Nama_ID.txt".

Disini kelihatan kalau pemakaian 2 parameter atau lebih harus diakhiri dulu dengan tanda ".". Jadi kalau seandainya hanya ada 1 parameter yang dikirim, kodingnya akan berubah menjadi :

sqlplus username/password@DbName @QueryResultToFile.sql %Name%

spool QueryResult_&1..txt;

Notes : default extention dari Spool adalah LST.
Jadi kalau hanya ditulis :
"spool QueryResult_&1;"
Hasilnya akan menjadi :
"QueryResult_Nama.LST"

Selamat mencoba^^

Smile

0 comments:

Post a Comment

Related Posts Plugin for WordPress, Blogger...