解决执行脚本时爆“sqlplus: command not found”的问题
如题所示,在安装了oracle的Linux服务器上执行脚本时出现如题的错误:
[oracle@hp-db test]$ ./getSysdate.sh ./getSysdate.sh: line 10: sqlplus: command not found
问题分析:
情况一:使用root用户切换到oracle用户时使用了以下命令
[root@hp-db test]# su oracle
这样切换用户导致从root用户切换到oracle用户时没有加载/home/oracle/.bash_profile文件,因此环境变量没有加载进来
正确命令应该是:
[root@hp-db test]# su - oracle
然后进行测试:
[oracle@hp-db ~]$ echo $ORACLE_HOME /home/oracle/app/oracle/product/11.2.0/dbhome_1
[oracle@hp-db ~]$ sqlplus "/ as sysdba"
可以发现已经可以正常进入SQL命令模式了
情况二:/home/oracle/.bash_profile文件中的oracle环境变量设置得不太正确
如果是这个文件中的环境变量设置不对的话,只需要参考一个正确的配置文件根据实际情况修改即可,参考文件如下:
#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是这样的:
#!/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
再次执行效果如下:
[oracle@hp-db test]$ ./getSysdate.sh 2016-08-19 The rows is 2016-08-19
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Linux中使用crontab命令启用自定义定时任务
一 简介 Linux下的任务调度分为两类,系统任务调度和用户任务调度 系统任务调度:系统需要定期执行的任务,比如重启、日志清理等,其配置文件是:/etc/crontab 用户任务调度:某个用户需要定期执行的任务。用户可以使用 crontab 命令来配置自己的定时任务。所有用户配置的定时任务都存放在 /var/spool/cron/ 目录下,其文件名与用户名一致。如:root用户的所有定时任务就保存在/var/spool/cron/root 文件中 二crontab文件的含义 所有用户crontab文件都存放在 /var/spool/cron/ 目录下,以用户名命名。其中每一行都代表一项任务,每行的每个字段代表一项配置,它的格式一共分为六个字段,前五段是时间设置段,第六段是要执行的命令段,格式如下: minute hour day month week command minute: 表示分钟,可以是从0到59之间的任何整数 hour:表示小时,可以是从0到23之间的任何整数 day:表示日期,可以是从1到31之间的任何整数 month:表示月份,可以是从1到12之间的任何整数 week...
- 下一篇
为虚拟桌面配置网络负载均衡
经常有朋友问我,如果虚拟桌面中"安全服务器"或"连接服务器"出现问题怎么办,怎么为VMware安全服务器与连接服务器配置负载均衡。如果虚拟桌面数量较多,单位网络规模较大的时候,可以使用专业的网络负载均衡设备(如图1-0所示);如果单位网络较小,并且预算有限时,可以使用Windows Server 自带的NLB(网络负载均衡)来实现(如图1-1所示),本文将介绍这方面的内容。 在正常的规划设计中,从Internet到单位内部虚拟桌面的网络拓扑如图1-0所示。 图1-0 使用专业的网络负载均衡设备 在本节的操作中,将分别为View安全服务器、连接服务器配置网络负载均衡(NLB),并通过防火墙发布出去(在本文的示例中,防火墙是"单点"故障点,如果采用Forefront TMG作为防火墙,可以组成Forefront TMG的阵列提供冗余)。这样,无论是在局域网内使用View连接服务器,还是在Internet中使用View安全服务器,都有冗余。整个拓扑如图1-1所示。 图1-1 View 7的NLB网络拓扑 其中Internet、View安全服务器、View连接服务器等效示意图如图1-2所示。 ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Red5直播服务器,属于Java语言的直播服务器