如何在bash命令中传递sqlplus中的变量

时间:2011-09-15 13:06:58

标签: bash parameters sqlplus

这可能有问题:我在我的bash文件中有内联sqlplus调用,我想传递一个参数

这段代码就是我正在尝试的

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语句(&amp; 1)中使用我的$ id参数?

1 个答案:

答案 0 :(得分: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