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

Bal*_*ius 2 parameters bash 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`
Run Code Online (Sandbox Code Playgroud)

如何在where语句(&1)中使用我的$ id参数?

dog*_*ane 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`
Run Code Online (Sandbox Code Playgroud)

Bash将执行参数替换.$id101sqlplus运行之前用参数的实际值代替,即在这种情况下.