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文件,则通常需要创建一个环境变量调用TNS_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 Server,这些环境变量应该添加到/fmeserver/Server目录下的startEngines.sh脚本中。
> LD_LIBRARY_PATH=/export/home/sd/instantclient_10_2/lib:${LD_LIBRARY_PATH} > export 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环境变量。按照上面设置PATH的类似方法,定义一个名为NLS_LANG的新环境变量,其值为AMERICAN_AMERICA。WE8ISO8859P1或JAPANESE_JAPAN。JA16EUC有时这个变量是在Windows注册表中定义的,对于Oracle来说可能有一个无效的值。
如果您不喜欢使用上面的语法来指定您的连接,您可以选择创建一个tnsnames。Ora文件来配置您的连接。以及。Ora可以驻留在系统上的任何位置,但为了方便起见,可以将其放置在安装即时客户端的相同目录中。这个文本文件由一系列服务定义组成,其形式如下:
=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST =< hostname>)(PORT =< 1521>)))(CONNECT_DATA =(SERVICE_NAME= )))
例如:
Amidala =(description =(address_list =(address =(protocol = tcp)(host = Amidala)(port = 1521)))(connect_data =(service_name = orcl))))
一旦创建了tnsnames。然后,必须将TNS_ADMIN环境变量设置为tnsnames的路径。ora,但不包括tnsnames。奥拉文件名本身。例如,
甲骨文TNS_ADMIN = C: \ win32apps \ \ instantclient_10_2
注意:似乎TNS_ADMIN不喜欢有空格的路径名。如果遇到问题,可以尝试放置tnsnames。Ora在名称中没有空格的目录中。此外,文本中的制表符可能会有问题,所以与其复制和粘贴这个示例条目,不如从头创建一个。
注2:对于某些场景,用户报告拥有tnsname。oracle\instantclient_xx_x\client\network\admin目录下的ora文件保存了它们,使它们不必定义TNS_ADMIN环境变量。
Note3:如果您对32位和64位客户端都有需求,可以使用TNS_ADMIN环境变量来通知两个客户端一个tnsnames。ora文件。这允许您为两个客户机只维护一个文件。
Note4: Mac用户,请参考此文章查看创建TNS_ADMIN环境变量的有用提示。
如果在格式库中Oracle格式仍然是灰色的,请参阅在这里有关更多故障排除技巧。此外,我们建议使用第三方工具(如SQLDeveloper或Toad)来测试连接。如果您可以使用TNS连接通过这些工具访问Oracle数据库,那么FME也应该可以工作。从SQLPlus进行测试是不够的。
如果你收到“fmeocilink.so在Linux上运行工作区时出错,请参见在这里故障排除技巧。
如果您正在使用tns别名(tnsnames.ora),并且连接上仍然有问题,请尝试使用上面提到的简单连接进行测试。尝试主机名和服务名,而不是tns别名值。
主机名:端口/ sid或主机名:端口/名
©2020 S亚搏在线afe Software Inc |法律