2011-09-15 129 views
2

這是5月問題:我有內嵌的sqlplus呼叫我的bash的文件,我想傳遞一個參數如何傳遞變量在sqlplus在bash命令

這段代碼是什麼,我想

c_id=`sqlplus -S $login/$password $id << EOF 
    set pagesize 0 
    set verify off 
    set head off 
    set feedback off 
    SELECT id from bdd.table where ID not in (select id from bdd.TMP_table) and id > &1 and ROWNUM <= 1000 order by id; 
    exit; 
    EOF` 

如何在我的where語句中使用我的$ id參數(& 1)?

回答

8

只需將&1更改爲$id即可。例如:

id=101 
c_id=`sqlplus -S $login/$password << EOF 
    set pagesize 0 
    set verify off 
    set head off 
    set feedback off 
    SELECT id from bdd.table where ID not in (select id from bdd.TMP_table) and id > $id and ROWNUM <= 1000 order by id; 
    exit; 
    EOF` 

Bash將執行參數替換。在此情況下,$id將被替換爲參數的實際值,即101,在sqlplus運行之前。

+0

謝謝你是那個!我意識到這是我在比賽中所做的事情,但我在我的循環中犯了錯誤... – Baltius

+0

@Baltius:感謝某人的最佳方式是增加他們的聲望點。當您看到好的問答時,請使用灰色三角形對其進行投票,網址爲http://i.imgur.com/kygEP.png。同時請記住通過按複選標記http://i.imgur.com/uqJeW.png接受最能解決您問題的答案(如果有的話)。祝你好運! – shellter

+0

@Shellter:我會這樣做,但它需要15點的聲譽才能啓用此操作:s我將在稍後執行此操作,因此... – Baltius

相關問題