将变量传递给查询的SELECT部分

问题描述 投票:0回答:1

说我的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部分​​中。

有人可以帮忙吗?

shell variables select
1个回答
0
投票

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

data_rec=`sqlplus -s ${user}/${password} << EOF
...
© www.soinside.com 2019 - 2024. All rights reserved.