oracle数据库在linux系统里一般用的是oracle用户,环境变量等也是oracle用户

那么如何在root用户下写shell脚本调用oracle数据库并返回结果

只需要在你的shell脚本中加入下面的脚本即可!

# 获取oracle环境变量并在root用户中生效(暂时)

export ORACLE_HOME=$TY_ORACLE_HOME
export LD_LIBRARY_PATH=$TY_LD_LIBRARY_PATH
export NLS_LANG="$nls_lang"
export PATH=$ORACLE_HOME/bin:$LD_LIBRARY_PATH:$PATH

# 把sql写进变量loadsql中,其中sql里可以写变量
loadsql="SELECT id || ' and ' || name from ${table};"
# 有些系统可以直接使用loadsql这个变量,有的则需要加个引号变成字符
loadsql="$loadsql"
# 仅需更改部分变量名,如有需要
result=`sqlplus -S $user/$pass@$jdbc <<END
			set heading off
			set feedback off
			set pagesize 0
			set verify off
			set echo off
			set line 3000
			$loadsql
			quit;
END`
# 对输出结果进行标准化,如awk,grep,sed等
sselect=`echo  "$result"| awk  '{printf "%s\n", $0}'`

 

更多推荐

如何在shell脚本中调用oracle数据库并返回结果