博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决执行脚本时爆“sqlplus: command not found”的问题
阅读量:5897 次
发布时间:2019-06-19

本文共 1726 字,大约阅读时间需要 5 分钟。

如题所示,在安装了oracle的Linux服务器上执行脚本时出现如题的错误:

1
2
[oracle@hp-db 
test
]$ .
/getSysdate
.sh
.
/getSysdate
.sh: line 10: sqlplus: 
command 
not found

问题分析:

情况一:使用root用户切换到oracle用户时使用了以下命令

1
[root@hp-db 
test
]
# su oracle

这样切换用户导致从root用户切换到oracle用户时没有加载/home/oracle/.bash_profile文件,因此环境变量没有加载进来

正确命令应该是:

1
[root@hp-db 
test
]
# su - oracle

然后进行测试:

1
2
[oracle@hp-db ~]$ 
echo 
$ORACLE_HOME
/home/oracle/app/oracle/product/11
.2.0
/dbhome_1
1
[oracle@hp-db ~]$ sqlplus 
"/ as sysdba"

可以发现已经可以正常进入SQL命令模式了

情况二:/home/oracle/.bash_profile文件中的oracle环境变量设置得不太正确

如果是这个文件中的环境变量设置不对的话,只需要参考一个正确的配置文件根据实际情况修改即可,参考文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#Oracle Config
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=hp-db
export ORACLE_BASE=/home/oracle/app
export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=yoursid
export ORACLE_TERM=xterm
export ORACLE_UNQNAME=yourunqname
export PATH=/usr/sbin:$ORACLE_HOME/bin:$PATH
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
export EMLOCALHOST=localhost.oracle
export NLS_DATE_FORMAT="YYYY-MM-DD  HH24:MI:SS"
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

附:最上面的那个shell脚本getSysdate.sh是这样的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash
VALUE=`sqlplus -S 
"/ as sysdba" 
<< !
set 
heading off
set 
feedback off
set 
pagesize 0
set 
verify off
set 
echo 
off
select 
to_char(sysdate,
'yyyy-mm-dd'
) today from dual;
exit
!`
echo 
$VALUE
if 
[ -n 
"$VALUE" 
]; 
then
echo 
"The rows is $VALUE"
exit 
0
else
echo 
"There is no row"
fi

再次执行效果如下:

1
2
3
[oracle@hp-db 
test
]$ .
/getSysdate
.sh
2016-08-19
The rows is 2016-08-19
本文转自 pangfc 51CTO博客,原文链接:http://blog.51cto.com/983836259/1861364,如需转载请自行联系原作者
你可能感兴趣的文章
Sysbench 0.5版安装配置
查看>>
统一沟通-技巧-11-Lync-联盟-无法-音频-远程桌面-传文件
查看>>
书摘—你不可不知的心理策略
查看>>
【博客话题】毕业——开始人生的艰苦历程
查看>>
2014.7.30-8.3日广大网友的提问解答(答问题的第2个工作周)
查看>>
Powershell管理系列(二十五)PowerShell操作之获取AD账号及邮箱信息
查看>>
android开发 更新升级安装到一半自动闪退
查看>>
Linux安装telnet
查看>>
linux 标准I/O (二)
查看>>
量子纠缠
查看>>
【高德地图API】从零开始学高德JS API(三)覆盖物——标注|折线|多边形|信息窗口|聚合marker|麻点图|图片覆盖物...
查看>>
IOS 消息机制(NSNotificationCenter)
查看>>
JAVA 设计模式 策略模式
查看>>
openstack nova修改实例路径,虚拟磁盘路径
查看>>
java.sql.SQLException: Lock wait timeout exceeded --转
查看>>
使用C#进行图像处理的几种方法(转)
查看>>
Ajax原理学习
查看>>
easyui------dialog如何固定位置
查看>>
sap scriptfom 多语言翻译
查看>>
GSON学习笔记之初识GSON
查看>>