ORA-12162: TNS:net service name is incorrectly specified
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 文件
# .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
有没有看出什么?
ORACLE_SID 变量有配置,但是没有 export, 也就是未生效。
2.2 解决
将环境变量生效的方法有多种,包括临时生效(退出session后自动失效,下次再切换到该 用户也不会生效), 自动生效(每次切换到该用户都会自动生效)。下面分别说明
-
临时生效方法
在shell环境中执行export命令:
export ORACLE_SID=gjcrm
在当前session中马上生效。
-
自动生效方法
在用户环境变量的配置文件中添加export配置:
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
配置完成后,执行
source ~/.bash_profile
或者重新登录该用户都可以生效。
Created: 2019-08-21 Wed 16:22
===================
天行健,君子以自强不息
地势坤,君子以厚德载物
===================