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 U管理它指向包含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。通过在instant client目录中创建指向fme期望的符号链接来解决此问题:利布朗茨10.1号公路libclntsh.so
easy connect连接字符串是连接到oracle数据库的最简单方法。使用这种类型的连接字符串作为fme中的“数据集”。
用户/密码@//hostname:port/sid
例如
斯科特/老虎@//Amidala:1521/ORCL
使用此字符串不需要输入用户名或密码-这些都包含在“轻松连接”字符串中。
注:如果您收到有关访问NLS数据文件的投诉,则必须为您的语言环境设置NLS\U LANG环境变量。按照与设置上述路径类似的方法,定义一个名为nls_lang的新环境变量,其值为american_america.we8iso8859p1或japanese_japan.ja16euc。有时此变量是在windows注册表中定义的,就oracle而言,可能具有无效值。
如果您不想使用上面的语法来指定连接,可以选择创建tnsnames.ora文件来配置连接。tnsnames.ora可以位于系统的任何位置,但为了方便起见,它可以放在安装即时客户端的同一目录中。此文本文件由一系列服务定义组成,其格式如下:
=(描述=(地址列表=(地址=(协议=TCP)(主机= )(PORT = <1521>)))(CONNECT_DATA =(SERVICE_NAME = )))
例如:
amidala=(描述=(地址列表=(地址=(协议=TCP)(主机=amidala)(端口=1521)))(连接数据=(服务名称=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\client\network\admin目录中使用tnsnames.ora文件可以避免定义tns_admin环境变量。
注3:如果对32位和64位客户机都有要求,可以使用tns_admin环境变量将一个tnsnames.ora文件通知两个客户机。这允许您只为两个客户机维护一个文件。
如果您的格式库中的Oracle格式仍为灰色,请参见在这里了解更多故障排除提示。此外,我们建议使用第三方工具(如sqldeveloper或toad)来测试您的连接。如果您可以使用tns连接通过这些工具访问oracle数据库,那么fme也应该可以工作。从sqlplus进行测试是不够的。
如果你收到菲莫西林.so“在Linux上运行工作区时出错,请参阅在这里有关疑难解答的提示。
如果您使用的是tns别名(tnsnames.ora),但仍有连接问题,请尝试使用上面所示的简单连接进行测试。请尝试主机名和服务名,而不是tns alias值。
主机名:port/sid或主机名:port/servicename
©2019安全亚搏在线软件公司法律