我试图编写一个脚本,使用BASH接受客户ID(使用基本的读取命令),然后我想在我的SQLPLUS查询中使用该BASH变量。我怎样才能做到这一点 ?我尝试使用以下格式,但它无效。
SELECT count(DISTINCT CASE WHEN [uid] <> '-' THEN [uid] END) +
count(DISTINCT CASE WHEN [uid] = '-' THEN [mid] END)
FROM T
答案 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
)