【发布时间】:2021-05-14 15:17:30
【问题描述】:
我正在尝试使用 shell 脚本将 sql 查询输出的值存储在变量中。
size=`${PATH_TO_CLIENT}sqlplus $IMPUSER/$IMPPWD@$ENDPOINT<< EOF
select owner, sum(bytes)/1024/1024/1024 Size_GB from dba_segments where owner = 'XXXX' group by owner;
exit;
EOF`
echo "Total data is ${size}"
我得到的输出是
**Total data is**
SQL*Plus: Release 21.0.0.0.0 - Production on Fri May 14 11:06:42 2021
Version 21.1.0.0.0
Copyright (c) 1982, 2020, Oracle. All rights reserved.
Last Successful login time: Fri May 14 2021 11:01:02 -04:00
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.8.0.0.0
SQL>
OWNER
--------------------------------------------------------------------------------
SIZE_GB
----------
XXXXXXX
12.2345
SQL> Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.8.0.0.0
在变量完整连接字符串和 sql 查询输出中都被存储。我只想获得像 $size=12.2345 这样的价值,请告诉我如何获得它
【问题讨论】:
-
您应该通过正确设置
ORACLE_HOME变量来删除sqlplus命令之前的${PATH_TO_CLIENT}。