将变量传递给查询

时间:2018-03-02 17:51:45

标签: shell variables select

说我的shell脚本中有这个:

label="SOME_VALUE"
data_rec=`sqlplus -s ${user}/${password} << "EOF"
  set heading off feedback off verify off timing off
 SELECT load||','||fmt_load
 FROM (SELECT RETRIEVE_PROCESS_CONTROL('$label','','MMDDYYYY') load
       FROM dual),
      (SELECT RETRIEVE_PROCESS_CONTROL('$label','','MM/DD/YYYY-HH24:MI:SS') fmt_load
       FROM dual);
    exit
EOF`

load=`echo $data_rec | cut -f1 -d',' | awk '{print $1}'`
fmt_load=`echo $data_rec | cut -f2 -d',' | awk '{print $1}'`

printf "Load: $load\n"
printf "FMT: $fmt_load\n"

变量替换在WHERE部分中有效,但在这里,我需要在SELECT部分​​。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

你的heredoc << "EOF"没有扩展变量。删除结束标记EOF周围的双引号,以便扩展变量:

data_rec=`sqlplus -s ${user}/${password} << EOF
...