span8
span4
我可以使用FME和Oracle即时客户端连接到Oracle吗?
是的,但是要注意你需要相同的平台级别。如果你有32位的FME,那么你需要一个32位的Oracle客户端。如果您有64位的FME,那么您需要64位的Oracle客户端。这与您的Oracle数据库在什么平台上运行无关在使用64位操作系统时尤其重要。关于平台问题的更多细节可以查看在这里。
使用32位Oracle和64位FME可能会在FME工作空间日志中产生以下错误:
无法打开企业地理数据库。ArcObjects的错误号是:'-2147155644'。来自ArcObjects的错误消息是:{无法连接到数据库,因为数据库客户端软件加载失败。确保数据库客户端软件安装和配置正确。
此外,如果您计划通过tnsnames使用tns别名。ora file, then it is often necessary to create an environment variable calledTNS_ADMIN它指向包含tnsnames的文件夹。ora文件。本文将在下面对此进行讨论。如果你使用简单的连接那么这个环境变量将不是必需的。
请注意,每次更改路径或其他环境变量时,都需要重新启动FME。外部更改不会影响任何正在运行的进程或正在运行的进程的任何新创建的子进程。
如果FME或FME服务器没有找到包含正确文件的/lib文件夹,它将无法识别Oracle客户端。直接设置LD_LIBRARY_PATH可能会克服一些问题——一些客户报告说这样做已经成功了。Oracle完整客户端安装提示:如果使用Oracle完整客户端安装安装文件夹将包含一个/ lib文件夹和ORACLE_HOME应足以FME将使用设置为:ORACLE_HOME路径,定位和确认的存在“自由”文件夹并将其应用到LD_LIBRARY_PATH附加/ lib。在即时客户端情况下,“lib”文件夹不存在,这就是创建lib文件夹并将文件复制到此文件夹的原因(步骤3-5)。对于FME服务器,应该将这些环境变量添加到/fmeserver/Server目录中的startengins .sh脚本。
> LD_LIBRARY_PATH=/export/home/sd/instantclient_10_2/lib:${LD_LIBRARY_PATH} >导出LD_LIBRARY_PATH
在某些平台上,随即时客户端发布的Oracle客户端库的名称包含了FME没有预料到的版本信息。例如,在Solaris上,它被称为libclnsh.so.10.1。通过在即时客户端目录中创建一个符号链接来修复这个问题:ln - s libclntsh.so.10.1libclntsh.so
Easy Connect连接字符串是连接到Oracle数据库的最简单方式。在FME中使用这种类型的连接字符串作为“数据集”。
用户/ password@ / /主机名:端口/ sid
例如
斯科特tiger@ / /阿米达拉:1521 / orcl
使用这个字符串不需要输入用户名或密码——这些都包含在Easy Connect字符串中。
注意:如果您收到关于访问NLS数据文件的投诉,则必须为您的区域设置NLS_LANG环境变量。按照与前面设置路径类似的方法,定义一个名为NLS_LANG的新环境变量,其值为AMERICAN_AMERICA。WE8ISO8859P1或JAPANESE_JAPAN。JA16EUC Sometimes this variable is defined in the Windows registry, and might have an invalid value as far as Oracle is concerned.
如果您不喜欢使用上面的语法来指定连接,您可以选择创建一个tnsnames。或档案,以配置您的连接。以及。ora could reside anywhere on the system, but for convenience it can be placed in the same directory as where the instant client was installed.此文本文件包含一系列服务定义,其形式如下:
= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP))(HOST =) )(端口= <1521>))(CONNECT_DATA =(SERVICE_NAME= )))
例如:
(说明=(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(主机=阿米达拉)(端口= 1521))(CONNECT_DATA =(SERVICE_NAME = ORCL)))
创建了tnsname之后。ora file, you must then set the TNS_ADMIN environment variable to be the path to the tnsnames.ora, but NOT including the tnsnames.ora filename itself.例如,
甲骨文TNS_ADMIN = C: \ win32apps \ \ instantclient_10_2
注意:似乎TNS_ADMIN不喜欢包含空格的路径名。如果你遇到了问题,试着把tnsname。ora in a directory that does not have spaces in the name.此外,文本中的制表符可能存在问题,因此与其复制和粘贴这个示例条目,不如从头创建一个。
注2:对于某些场景,用户报告说有tnsname。ora file in the oracle\instantclient_xx_x\client\network\admin directory saved them from having to define the TNS_ADMIN environment variable.
Note3:如果需要32位和64位客户机,可以使用TNS_ADMIN环境变量通知两个客户机一个tnsname。ora文件。这允许您仅为两个客户机维护一个文件。
如果您的格式库中的Oracle格式仍然是灰色的,请查看在这里了解更多故障排除技巧。此外,我们建议使用第三方工具,如SQLDeveloper或Toad来测试连接。如果您可以使用TNS连接通过这些工具访问Oracle数据库,那么FME也可以工作。从SQLPlus进行测试是不够的。
如果你收到"fmeocilink.so在Linux上运行工作区时出错,请参阅在这里故障排除技巧。
如果您正在使用tns别名(tnsnames.ora),并且仍然存在连接问题,请尝试使用上面所述的easy连接进行测试。尝试使用主机名和服务名而不是tns别名值。
主机名:端口/ sid或主机名:端口/名
©2019安全亚搏在线软件公司法律