ORA-12162
1 错误信息
$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Wed Aug 21 11:23:01 2019 Copyright (c) 1982, 2009, Oracle. All rights reserved. ERROR: ORA-12162: TNS:net service name is incorrectly specified Enter user-name:
2 分析及解决
2.1 缘由
此问题出现的缘由,可能是因为未配置变量 ORACLE_SID 引发的,以下是oracle用户的 .bash_profile 文件css
# .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin ORACLE_BASE=/oradata ORACLE_HOME=/oradata/product/10.2.0/db_1 ORACLE_SID=gjcrm PATH=$ORACLE_HOME/bin:$PATH export ORACLE_HOME PATH
有没有看出什么?html
ORACLE_SID 变量有配置,可是没有 export, 也就是未生效。java
2.2 解决
将环境变量生效的方法有多种,包括临时生效(退出session后自动失效,下次再切换到该 用户也不会生效), 自动生效(每次切换到该用户都会自动生效)。下面分别说明python
-
临时生效方法sql
在shell环境中执行export命令:shell
export ORACLE_SID=gjcrm
在当前session中立刻生效。sass
-
自动生效方法ruby
在用户环境变量的配置文件中添加export配置:bash
ORACLE_BASE=/oradata ORACLE_HOME=/oradata/product/10.2.0/db_1 ORACLE_SID=gjcrm PATH=$ORACLE_HOME/bin:$PATH export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
配置完成后,执行babel
source ~/.bash_profile
或者从新登陆该用户均可以生效。