首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何配置oracle instantclient for mono?

如何配置oracle instantclient for mono?
EN

Stack Overflow用户
提问于 2010-03-11 11:22:31
回答 2查看 2.9K关注 0票数 1

单声道真的很棒。我们的一些应用程序在linux中开箱即用,甚至不需要重新编译二进制文件。然而,我很难将oracle instantclient配置为与mono一起使用。

我在CentOS虚拟机上安装了即时客户端(通过安装即时客户端rpm),但是我没有找到TNSNAMES.ORA anywhere。

我搜索oracle,发现以下路径包含oracle库。

代码语言:javascript
复制
[root@bagvapp rupert]# ll /usr/lib/oracle/11.2/client/lib/
total 143280
-rw-r--r-- 1 root root     7456 Aug 14  2009 cobsqlintf.o
-rw-r--r-- 1 root root      342 Aug 14  2009 glogin.sql
lrwxrwxrwx 1 root root       17 Mar  9 06:52 libclntsh.so -> libclntsh.so.11.1
-rw-r--r-- 1 root root 40088477 Aug 14  2009 libclntsh.so.11.1
-rw-r--r-- 1 root root  6986848 Aug 14  2009 libnnz11.so
lrwxrwxrwx 1 root root       15 Mar  9 06:52 libocci.so -> libocci.so.11.1
-rw-r--r-- 1 root root  1879549 Aug 14  2009 libocci.so.11.1
-rw-r--r-- 1 root root 89377610 Aug 14  2009 libociei.so
-rw-r--r-- 1 root root   152304 Aug 14  2009 libocijdbc11.so
-rw-r--r-- 1 root root  1501651 Aug 14  2009 libsqlplusic.so
-rw-r--r-- 1 root root  1218075 Aug 14  2009 libsqlplus.so
-rw-r--r-- 1 root root   777979 Aug 14  2009 libsqora.so.11.1
-rw-r--r-- 1 root root  1996228 Aug 14  2009 ojdbc5.jar
-rw-r--r-- 1 root root  2111220 Aug 14  2009 ojdbc6.jar
-rw-r--r-- 1 root root   298388 Aug 14  2009 ottclasses.zip
drwxr-xr-x 3 root root     4096 Mar  9 06:52 precomp
-rw-r--r-- 1 root root    37807 Aug 14  2009 xstreams.jar

没有可用的TNSPING,没有TNSNAMES.ORA,现在如何配置mono以将其用作oracle客户端?以及如何在app.config连接字符串部分指定oracle数据库?

虽然mono是一个强大的框架,但它似乎像linux一样存在问题,所有的文档都只能在邮件列表中找到,而官方网站上的任何东西要么过时了,要么对普通用户来说不是很清楚。

希望事情很快会改变,Mono将成为linux的编程框架。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-11 16:11:56

使用oracle easy connect命名方法或自己在正确的位置创建一个tnsnames.ora (查看即时客户端文档以了解位置的搜索顺序)。tnsping不是即时客户端(或任何附加程序包)的一部分。

从instant client faq 如何确保在Instant Client中使用我的" tnsnames.ora“文件?始终将TNS_ADMIN环境变量或注册表设置设置为tnsnames.ora文件的完整路径。这种做法将确保您在使用即时客户端运行时为您的应用程序使用适当的tnsnames.ora。

如何在即时客户机模式下指定连接字符串?所有不需要使用ORACLE_HOME或TNS_ADMIN (用于查找配置文件,如tnsnames.ora或sqlnet.ora)的Oracle net命名方法都在即时客户机模式下工作。具体地说,可以用以下格式指定连接字符串:

以下形式的SQL连接URL字符串:

//host:port

例如:

//dbase-server-5:4321/ORDERS

作为Oracle Net关键字-值对。例如:

"(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=dlsun242) (PORT=5521)) (CONNECT_DATA=(SERVICE_NAME=bjava21)“

如果设置了TNS_ADMIN环境变量,则需要TNS_ADMIN查找配置文件的命名方法将继续工作。

如果未设置TNS_ADMIN环境变量,而使用了inst1等TNSNAME项,则必须设置ORACLE_HOME变量,并且配置文件应位于$ORACLE_HOME/network/admin目录中。

请注意,本例中的ORACLE_HOME变量仅用于定位Oracle Net配置文件,而客户机代码库的任何其他组件(OCI、NLS等)都不使用ORACLE_HOME的值。

不支持遗留适配器或空连接字符串。但是,使用空连接字符串的另一种方法是将UNIX上的TWO_TASK环境变量或Windows上的本地变量设置为tnsnames.ora条目或Oracle Net关键字-值对。如果将TWO_TASK或LOCAL设置为tnsnames.ora条目,则tnsnames.ora文件必须能够通过TNS_ADMIN或ORACLE_HOME设置加载。

票数 3
EN

Stack Overflow用户

发布于 2010-03-11 21:55:48

Mono不知道在哪里搜索"libclntsh.so“。在我的系统上,"libclntsh.so“是@ /usr/lib/oracle/11.2/client/lib/。通过执行以下命令,我的问题得到了解决

代码语言:javascript
复制
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client/lib/
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2422316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档