如何使用set变量返回sqlplus中的值?

时间:2013-06-28 00:42:05

标签: oracle shell sqlplus

有人可以帮我吗? 看起来我在设置变量中设置了正确的值,但它返回了很多东西。见下文:

################################
# Main
################################

RETVAL=`sqlplus user/pass@DB <<EOF
SET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFF
SELECT process_id, source, destination, type FROM table WHERE process_id IN ('12311','12322');
EXIT;
EOF`
if [ -z "$RETVAL" ]; then
  echo "No rows returned from database"
  exit 0
else
  echo $RETVAL
fi

输出结果为:

SQL * Plus:版本9.2.0.8.0 - 生产于2013年6月27日星期四19:37:39版权所有(c)1982,2002,Oracle Corporation。版权所有。连接到:Oracle Database 11g企业版11.2.0.2.0版 - 64位生产使用分区,OLAP,数据挖掘和实际应用程序测试选项SQL&gt; SQL&GT; 12311,AAA BBB,2 12322,AAA BBB,5 SQL&gt;断开与Oracle Database 11g企业版11.2.0.2.0版 - 64位生产与分区,OLAP,数据挖掘和实际应用程序测试选项

我只想:

12311,AAA,BBB,2, 12322,AAA,BBB,5,

*逗号也不正确

1 个答案:

答案 0 :(得分:2)

使用sqlplus的-s选项来抑制:

sqlplus -s user/pass@DB