执行后无法连接到 Oracle。bash_profile

Unable to connect to Oracle after executing .bash_profile

我已经安装了 Oracle 11gR2 并想连接 SQL*Plus 但我不能。

我以 root 身份登录,然后以

将用户切换到 oracle
su oracle

我在 .bash_profile 中添加了所需的 Oracle 环境变量,但是当我从 root 切换到 oracle 用户时它没有执行。即使手动执行 bash 文件也不会使用以下命令导出变量

$ ./.bash_profile

这些是我的内容 .bash_profile:

#!/bin/bash 
#.bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programsotp
PATH=$PATH:$HOME/bin

export PATH

# Oracle Settings
TMP=/tmp; export TMP 
TMPDIR=$TMP; export TMPDIR 

ORACLE_HOSTNAME=orcl.genie.com; export ORACLE_HOSTNAME
ORACLE_UNQNAME=orcl; export ORACLE_UNQNAME 
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE 
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME 
ORACLE_SID=orcl; export ORACLE_SID 
ORACLE_TERM=xterm; export ORACLE_TERM 
PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH; export PATH 

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH 
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH 

if [ $USER = "oracle" ]; then 
   if [ $SHELL = "/bin/ksh" ]; then 
      ulimit -p 16384 
      ulimit -n 65536 
   else 
      ulimit -u 16384 -n 65536 
   fi 
fi 

umask 022

要检查您是否 运行 正在登录 shell,请使用以下命令

shopt login_shell

如果显示

login_shell off 

那你还没有运行登录shell。您需要使用 -l switch

切换到 oracle 用户
su -l oracle

希望,它能解决您的问题。