在Shell脚本中切换用户以运行SQL

时间:2019-10-04 10:28:22

标签: oracle shell ksh

在切换脚本中的用户后,我试图在SHELL脚本中运行一些SQL。该脚本以root身份运行,但我希望使用su来运行oracle,以SYSDBA身份登录并运行一些SQL。

我已经在$ cmd变量中定义了SQL,但是似乎未调用它,并且Unix环境似乎未按预期加载。

typeset cmd="<<-SQL
WHENEVER SQLERROR EXIT SQL.SQLCODE;
SET FEEDBACK OFF HEAD OFF SERVEROUTPUT ON
select NAME, OPEN_MODE, sys_context('USERENV','ORACLE_HOME') ORACLE_HOME from v$database;
EXIT;
SQL"

ts_log "Running SQL"
su oracle -c "export ORACLE_SID=TESTDB;export ORAENV_ASK=NO;. /usr/local/bin/oraenv;sqlplus -s \'/ as sysdba\' ${cmd}"

目标是让SQL运行!该代码摘录是更广泛的代码的一部分,该代码创建一个新的$ ORACLE_HOME并将该数据库交换为“ {new} $ORACLE_HOME”,此检查将证明该数据库已被交换。

0 个答案:

没有答案
相关问题