span8
span4
我可以连接到Oracle使用FME和Oracle即时客户端?
是的 - 但是请注意,你需要在同一个平台级 - 也就是说,如果您有32位FME,那么你需要一个32位的Oracle客户端。如果你有64位FME,那么你需要一个64位的Oracle客户端。这是您的Oracle数据库上运行什么平台,无论并使用一个64位的OS时是特别重要的。在平台问题的更多详情,请here.
使用32位的Oracle具有64位FME可以产生在工作区FME日志以下错误:
无法打开企业级地理数据库。从ArcObjects的错误编号是:“-2147155644”。从ArcObjects的错误消息是:{无法连接到数据库,因为数据库客户端软件加载失败。确保数据库客户端软件安装和配置正确。}
另外,如果您打算通过tnsnames.ora文件使用TNS别名,那么通常需要创建一个名为一个环境变量TNS_ADMIN它指向包含tnsnames.ora文件的文件夹。这是本文在下面讨论。如果您使用易连接字符串那么这个环境变量将不再需要。
Please note that each time the path or other environment variable is changed, FME needs to be restarted. Outside changes will not affect any running processes, or any newly created subprocess of a running process.
如果FME或FME Server不会用正确的文件查找/ lib文件夹不会承认的Oracle客户端。直接设置LD_LIBRARY_PATH可以克服一些问题 - 一些客户已经成功报道做这种方式。在Oracle完整的客户端安装的说明:如果使用的是Oracle完整的客户端安装的安装文件夹将包含一个/ lib子文件夹和ORACLE_HOME应足以将其设置为FME将使用ORACLE_HOME路径,找到并确认了“LIB”的存在文件夹,并将其应用到LD_LIBRARY_PATH追加/ lib添加到它。在Instant客户端的“LIB”文件夹不存在,所以这是用于创建lib文件夹和文件复制到该文件夹(步骤3-5)的原因的情况。对于FME Server的这些环境变量应被添加到startEngines.sh脚本/ fmeserver /服务器目录中找到。
> LD_LIBRARY_PATH = /导出/家庭/ SD / instantclient_10_2 / lib目录下:$ {LD_LIBRARY_PATH}>出口LD_LIBRARY_PATH
对于某些平台,Oracle客户端库与即时客户端分发的名称包含版本信息FME并不期望。例如,在Solaris上它被称为像libclnsh.so.10.1。通过创建即时客户端目录到什么FME期待一个符号链接解决这个问题:LN -s libclntsh.so.10.1libclntsh.so
The Easy Connect connection string is the easiest way of connecting to your Oracle database. Use this type of connection string as your "dataset" in FME.
用户名/密码@ //主机名:端口/ SID
例如
斯科特/老虎@ //阿米达拉:1521 / ORCL
使用这个字符串就不需要输入用户名或密码 - 这些都包含在轻松连接字符串。
注意:如果您收到有关访问NLS数据文件的投诉,你将不得不建立NLS_LANG环境变量您的语言环境。下面类似的方法来设置上述路径,定义一个名为NLS_LANG与一个值,如AMERICAN_AMERICA.WE8ISO8859P1或JAPANESE_JAPAN.JA16EUC有时,这种变量在Windows注册表中定义了一个新的环境变量,并尽可能甲骨文可能有无效值关心。
如果你不喜欢使用上述指定您的连接的语法,你必须创建一个tnsnames.ora文件来配置你的连接选项。tnsnames.ora中可以在任何地方驻留在系统上,但是为了方便,可以放在同一个目录中安装即时客户端在哪里。这个文本文件包含了一系列的服务定义,这是形式的:
=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = <主机名>)(PORT = <1521>)))(CONNECT_DATA =(SERVICE_NAME = )))
例如:
阿米达拉=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST =阿米达拉)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = ORCL)))
一旦你创建tnsnames.ora文件,则必须设置TNS_ADMIN环境变量是路径的tnsnames.ora,但不包括在tnsnames.ora文件名本身。例如,
TNS_ADMIN = C:\ win32apps \ ORACLE \ instantclient_10_2
注意:看来,TNS_ADMIN不喜欢带空格的路径名。如果遇到问题,请尝试将在tnsnames.ora中不具有名称包含空格的目录中。此外,还有可以在文本制表符等等,而不是复制粘贴此示例条目最好是建立一个从头开始的问题。
笔记2:对于某些情况下,用户报告其在oracle \ instantclient_xx_x \客户端\网络\ admin目录中的tnsnames.ora文件不必定义TNS_ADMIN环境变量救了他们。
注3:如果您有32位和64位客户端的需求,TNS_ADMIN环境变量可以用来通知一个tnsnames.ora文件的两个客户端。这可以让你保持只由一个客户机的文件。
注4:Mac用户,请参阅本文章用于创建TNS_ADMIN环境变量一个有用的小费。
如果Oracle格式在格式库见犹变灰here更多的故障排除提示。此外,我们建议您使用第三方工具,如的SQLDeveloper或蟾蜍测试连接。如果您可以通过这些工具使用TNS连接,然后FME应该也工作访问Oracle数据库。从测试的SQLPlus是不够的。
如果您收到“fmeocilink.so“错误在Linux上运行一个工作区时,看到here故障排除提示。
如果您正在使用TNS别名(tnsnames.ora中),但仍然遇到连接问题,请尝试用简单的连接如上所示测试。相反,TNS别名值的尝试主机名和服务名称。
主机名:端口/ SID或主机名:端口/服务名
©2020安全亚搏在线软件公司|法律