Chinaunix首页 | 论坛 | 博客
  • 博客访问: 53839
  • 博文数量: 40
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 451
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-13 11:41
文章分类

全部博文(40)

文章存档

2010年(23)

2009年(17)

我的朋友

分类: LINUX

2010-02-09 09:31:46

网上关于使用unixodbc连接oracle的方法很多,但是大部分都不准确,设置和安装的步骤有一部分是多余的,我总结了网上的文章并经过尝试进行简 化步骤,感觉比较好使,但是因为所有材料来自网上,所以不敢独享,现发布出来,希望对使用这方面的人一点提示。
本文可以任意转载,但请保留出处
//by rainfish
//from http://rainfish.cublog.cn/
1. 下载最新版的unixodbc并安装。
2. 下载
oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm
oracle-instantclient11.2-odbc-11.2.0.1.0-1.i386.rpm
安装。
将/usr/lib/oracle/11.2/client/lib/ 拷贝到/usr/lib/中

执行ldconfig

3. 编辑/etc/odbc.ini odbcinst.ini
内容如:
odbc.ini
[MY_ORACLE]
#odbcinst.ini中对应中括号中的名字
driver      = Oracle_test
server      = 192.168.1.167
port        = 1521
#tns的名字
ServerName  = MY_ORACLE
UserID      = sa
password    = 123456

odbcinst.ini
[Oracle_test]
Description     = odbc for Oracle
Driver      = /usr/lib/libsqora.so.11.1
Setup       = /usr/lib/liboraodbcS.so
FileUsage       = 1

#这个未知,但还是加上吧
[ODBC]
Trace=1
Debug=1
Pooling=No

在/usr/lib/oracle/11.2/network/admin/(这个路径可以放到程序所在路径中)中增加文件tnsnames.ora
内容:
MY_ORACLE =
  (DESCRIPTION =
       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.167)(PORT = 1521))
           (CONNECT_DATA =
                  (SERVER = DEDICATED)
                        (SERVICE_NAME = mydb)
                            )
             )
其中MY_ORACLE为odbc.ini的ServerName,SERVICE_NAME为数据库名字,HOST为数据库所在主机IP,PORT为数 据库所在主机port。

在/etc/profile中增加:
export TNS_ADMIN=/usr/lib/oracle/11.2/network/admin/(此处可以放到程序中设置环境变量的形式,会在后续封装 odbc的使用中说明)

执行 . /etc/profile (注意前面的英文句号) 把环境变量注册。

这时候如果数据库没问题,就可以连接上了
执行 isql MY_ORACLE -v(-v表示会提示出错信息)

应该会出现
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL>

恭喜你, ODBC设置成功
阅读(888) | 评论(6) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-10-21 21:34:01

是不是oracle服务器没有启动?

chinaunix网友2010-09-30 18:04:11

請問~我照作 出現了ORA-12545: Connect failed because target host or object does not exist 是哪裡出錯了捏

chinaunix网友2010-04-01 14:52:47

客气,互帮互助,应该的!

chinaunix网友2010-04-01 10:18:23

谢谢啊,我刚才已经搞定了,64位的需要用64位的oracle驱动,还需要用最新的unixodbc,我就是自己创建了network目录,现在已经好了,多谢你的文章!

chinaunix网友2010-04-01 09:45:21

是的,没有,你可以创建,也可以把tnsnames.ora 放在任意目录,然后在/etc/profile中增加:export TNS_ADMIN= 为tnsnames.ora存放目录即可。64位linux需要用新的unixodbc,在我的博客中有介绍