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 文件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
    

    或者從新登陸該用戶均可以生效。

Author: halberd.lee

Created: 2019-08-21 Wed 16:22

Validate

相關文章
相關標籤/搜索