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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将变量传递给查询的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
"
printf "FMT: $fmt_load
"

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

有人可以帮忙吗?

答案

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

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

以上是关于将变量传递给查询的SELECT部分的主要内容,如果未能解决你的问题,请参考以下文章

如何用SQL代码将动态查询结果赋值给变量?

Android:将片段和弹出窗口的点击事件中生成的变量传递给活动的方法

使用 codeigniter 将变量传递给 SELECT 子句

Android - 将搜索传递给片段

将变量传递给现代中继中的片段容器

将 R 变量传递给 RODBC sql 查询? [复制]