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
或者從新登陸該用戶均可以生效。