我需要创建一个Linux脚本,并且在此脚本中,需要使用<<EOF
捕获Oracle中SQL查询的结果,并将其放入变量中,例如:
sqlplus -s /nolog<<EOF
conn c##myuser/mypassowd
col product for a20
select product from myuser.table where id = 10;
EOF
我需要将SQL查询的结果放入bash变量中,该怎么办?
答案 0 :(得分:2)
您要使用here document作为命令,然后将输出重定向到某个文件。
类似这样的东西:
sqlplus -s /nolog > myfile.txt <<EOF
conn c##myuser/mypassowd
col product for a20
select product from myuser.table where id = 10;
EOF
我没有sqlplus可以自己测试,但是上面应该是“ close” ...
这应该可以将其放入变量:
myvar=$(sqlplus -s /nolog <<EOF
conn c##myuser/mypassowd
col product for a20
select product from myuser.table where id = 10;
EOF
)
答案 1 :(得分:1)
[这是用于Postgres,但shell语法相同]
#/bin/sh
DB=twitters
DB_USER=postgres
count=`psql -qtA -U ${DB_USER} ${DB} <<OEF
SELECT COUNT(*)
FROM tweeps;
OEF`
echo "Count=${count}"
#eof
输出:
Count=14458