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

相关文章
相关标签/搜索