Instant Client连接oracle的环境变量设置

数据库 Oracle
在linux环境下,Instant Client连接oracle数据库需要设置环境变量,下文对该方法作了详细的说明,希望对您能有所帮助。

Instant Client连接oracle数据库,直接连接会出现问题,必须要设置环境变量,下面就让我们来了解一下Instant Client连接oracle的环境变量设置方法。

最近写个代码用OCI在局域网内链接oracle数据库,开始天真的以为像链mysql数据库那样简单:下载了头文件和库文件开发包后就可以直接链接数据库了,结果我发现我错了,oracle声名在外果然不是盖的。

首先,去oracle官网下载C语言的库文件和头文件网址如下,选择对应的Instant Client版本(我下载的都是zip包,没有下载rpm包,rpm包应该安装的时候就把那些东西配置好了
http://www.oracle.com/technology/software/tech/oci/instantclient/index.html
下面是linux i386版本的
http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html
Instant Client Package - Basic     里面包含了动态库文件 libclntsh.so.11.1(***版本可能不一样) 并将其加载到动态库搜索路径中去,这里就不说详细步骤了,有疑问百度/狗狗搜索,实在不行在下面留言。
*Instant Client Package - SDK     这个则是包含的头文件

运行程简单的C链接序报错: ORA-12541: TNS:no listener 网络上一搜索都说是没有配置好oracle数据库的监听器或者是监听器没有启动,而那太oracle10g数据库的监听器明明启动了,而且网内另外一太机器安装了oracle client客户端用sqlplus能链接并操作数据库(那个标准client快500M,太肥了,不想装),于是我也下载了sqlplus包: *Instant Client Package - SQL*Plus 配置好以后发现在终端运行sqlplus命令链接oracle数据库错误依旧:
ERROR:
ORA-12541: TNS:no listener
   
连sqlplus都报一样的错误那就不是oci的问题了,是instant的环境配置问题鸟。在百度/狗狗上搜索一通,发现配置oracle的instant,要配置两个环境变量参数:TNS_ADMIN 和 ORACLE_HOME 。用export命令只对当前运行的系统有效,重启系统后就没了,因此要做到一次配置***生效就要编辑 ~/.bashrc 文件,在文件末尾加上两句:

  1. export TNS_ADMIN=/home/oracle/network/admin  
  2. export ORACLE_HOME=/home/oracle 

注:ORACLE_HOME 环境变量的路径是解压 Instant Client Package - Basic zip包的解压路径,路径下包含了从Basic包里解压出来的so文件jar文件等。

TNS_ADMIN环境则是标识tnsnames.ora文件的路径,在 ORACLE_HOME 路径下新建立network文件夹,然后在network文件夹内新建admin文件夹在admin文件夹内有 tnsnames.ora 文件即可,至于为什么TNS_ADMIN要这么设置,oracle默认路径的层次结构就是这样,因此我也照抄,理论上说TNS_ADMIN 没必要一定要在 ORACLE_HOME 路径里面,我没试过,谁有兴趣可以去试试,我的tnsnames.ora是从其他机器上直接拷过来的,内容如下:

  1. # tnsnames.ora Network Configuration File: /home/oracle/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora  
  2. TEST =  
  3. (DESCRIPTION =  
  4.     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.8)(PORT = 1521))  
  5.     (CONNECT_DATA =  
  6.       (SERVER = DEDICATED)  
  7.       (SERVICE_NAME = test)  
  8.     )  
  9. )  
  10.  
  11. EXTPROC_CONNECTION_DATA =  
  12. (DESCRIPTION =  
  13.     (ADDRESS_LIST =  
  14.       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))  
  15.     )  
  16.     (CONNECT_DATA =  
  17.       (SID = PLSExtProc)  
  18.       (PRESENTATION = RO)  
  19.     )  
  20. )  

 配置好上面这些后,注销用户重新登录,让 ORACLE_HOME 和 TNS_ADMIN 两个环境变量生效,检查方法很简单,分别在终端输入命令:

  1. [mgqw@localhost cutest]$ echo $ORACLE_HOME  
  2. /home/oracle  
  3. [mgqw@localhost cutest]$ echo $TNS_ADMIN  
  4. /home/oracle/network/admin 

如果像上面那样有路径输出则说明配置成功了,如果没有输出那重新再编辑一下 ~/.bashrc 看看哪里出了问题吧。

检查完成以后运行sqlplus登录数据库成功,运行C程序链接数据库也成功。
 

 

 

 

【编辑推荐】

ORACLE数据库设置编码

oracle日期格式化的实现

Oracle内存结构--SGA

查看oracle数据库版本的方法

带您了解ORACLE resource角色

责任编辑:段燃 来源: 互联网
相关推荐

2009-06-15 16:28:30

JAVA环境变量

2011-05-31 13:41:50

Android 环境变量

2009-07-03 16:13:10

JSP环境变量

2010-04-27 18:30:42

AIX系统

2019-09-09 09:02:04

Linux脚本语言文本编辑器

2009-10-21 12:58:18

2009-07-07 13:44:35

JDK环境变量设置

2009-07-07 12:48:29

JDK环境变量设置

2009-03-13 14:44:55

客户端C#Oracle

2009-12-25 09:44:59

redhatPATH设置环境变量

2010-09-16 15:44:12

Java环境变量

2011-06-14 09:21:55

Linux Qt 环境变量

2010-01-11 17:39:31

Fedora 8配置J

2010-01-12 15:46:54

Fedora JDK

2021-03-04 23:11:59

环境变量Python

2010-03-26 12:50:02

CentOS系统

2010-02-22 15:04:53

Ubuntu 7.04

2011-07-12 16:07:42

OracleToad环境变量

2021-11-18 15:54:17

FreeDOSLinux

2023-11-01 13:40:25

GolangGo
点赞
收藏

51CTO技术栈公众号