linux下odbc连接oracle
Posted 久违的太阳
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下odbc连接oracle相关的知识,希望对你有一定的参考价值。
这里不叙述odbc的安装方法和oracle客户端的安装方法,都比较简单!!
1.查看odbc的配置文件
odbcinst -j #查看odbc配置文件
[root@tx_sh1 ~]# odbcinst -j
unixODBC 2.3.1
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
驱动文件在/etc/odbcinst.ini DSN配置文件在/etc/odbc.ini 配置个人的DSN:/root/.odbc.ini
2.修改驱动配置
修改/etc/odbcinst.ini添加oracle的驱动文件
vi /etc/odbcinst.ini
[oracle]
Description = ODBC for Oracle
Driver = /data/oracle/app/oracle/product/11.2.0/db_1/lib/libsqora.so.11.1
Setup =
Driver64 =
Setup64 =
FileUsage =
这里我们是安装了oracle的64位客户端.odbc驱动文件在$ORACLE_HOME/lib下
这里我们还需要配置一下库文件的,否则会报错:
[root@tx_sh1 plugins]# isql txyun ds ds -v
[01000][unixODBC][Driver Manager]Can't open lib '/data/oracle/app/oracle/product/11.2.0/db_1/lib/libsqora.so.11.1' : file not found
[ISQL]ERROR: Could not SQLConnect
报错的原因是libsqlora.so.11.1依赖文件不存在:
[root@tx_sh1 plugins]# ldd /data/oracle/app/oracle/product/11.2.0/db_1/lib/libsqora.so.11.1
linux-vdso.so.1 => (0x00007ffd25379000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fc893246000)
libm.so.6 => /lib64/libm.so.6 (0x00007fc892f44000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fc892d28000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007fc892b0e000)
libclntsh.so.11.1 => not found #这里没有
libodbcinst.so.1 => not found #这里没有
libc.so.6 => /lib64/libc.so.6 (0x00007fc892740000)
/lib64/ld-linux-x86-64.so.2 (0x00007fc89344a000)
这里他找的是libodbcinst.so.1,而系统的是libodbcinst.so.2只要拷贝一下就可以了
[root@tx_sh1 lib64]# cp /usr/lib64/libodbcinst.so.2 /usr/lib64/libodbcinst.so.1
这里需要添加LD_LIBRARY_PATH环境变量和ORACLE_HOME环境变量
vi /etc/profile
export ORACLE_HOME=/data/oracle/app/oracle/product/11.2.0/db_1
export LD_LIBRARY_PATH=/data/oracle/app/oracle/product/11.2.0/db_1/lib:$LD_LIBRARY_PATH
3.配置数据源文件
[root@tx_sh1 ~]# cat /etc/odbc.ini
[txyun]
Description= ORCALE Driver
driver= oracle #这里是驱动的名称
server= 127.0.0.1 #oracle的ip地址
Port= 11521 #oracle端口号
ServerName= txyun #oracle服务名
UserID= ds #oracle用户
Password= ds #oracle密码
4.测试odbc连接
[root@tx_sh1 ~]# isql txyun
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
以上是关于linux下odbc连接oracle的主要内容,如果未能解决你的问题,请参考以下文章