-1

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

################################
# 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 Enterprise Edition Release 11.2.0.2.0 - 64 位生产,具有分区、OLAP、数据挖掘和实际应用程序测试选项 SQL> SQL> 12311 ,AAA BBB ,2 12322 ,AAA BBB ,5 SQL> 已断开连接Oracle 数据库 11g 企业版 11.2.0.2.0 版 - 64 位生产,具有分区、OLAP、数据挖掘和实际应用程序测试选项

我只是想:

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

*逗号也不对

4

1 回答 1

3

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

sqlplus -s user/pass@DB
于 2013-06-28T00:45:00.470 回答