如何使用Bash中的变量进入SQLPLUS?

时间:2015-06-29 05:16:10

标签: bash sqlplus

我试图编写一个脚本,使用BASH接受客户ID(使用基本的读取命令),然后我想在我的SQLPLUS查询中使用该BASH变量。我怎样才能做到这一点 ?我尝试使用以下格式,但它无效。

SELECT count(DISTINCT CASE WHEN [uid] <> '-' THEN [uid] END) +
       count(DISTINCT CASE WHEN [uid] = '-' THEN [mid] END)
FROM T

1 个答案:

答案 0 :(得分:0)

通常,你会这样做:

echo "select first_name from customer where customer_id = $Customer;" | sqlplus username\password@host

如果要运行多个查询,通常使用heredoc:

cat << EOF | sqlplus username\password@host
select first_name from customer where customer_id = $Customer;
select first_name from customer where customer_id = $Customer;
EOF

编辑以回应评论中的查询:

将任何命令的结果存储在变量中,您可以使用进程替换。 var=$( cmd )。在heredoc案例中,语法为:

var=$( cat << EOF | sql...
query
query
EOF
)