Oracle 19c 连接到 ColdFusion 2018
Posted
技术标签:
【中文标题】Oracle 19c 连接到 ColdFusion 2018【英文标题】:Oracle 19c connecting to ColdFusion 2018 【发布时间】:2020-12-02 11:54:43 【问题描述】:Windows 2016 Server 上的 ColdFusion 2018,当前使用 Oracle 12c。
我的机构正计划将 Oracle 升级到 19c,我在 CF 文档中没有找到任何关于连接到 19c 数据库的信息。
有人做过吗?有什么我应该知道的问题吗?我们的 CF 安装是最新的。
谢谢,
米歇尔
【问题讨论】:
在最近的一个项目中,我们更新到了 19c,不需要对 ColdFusion 数据源进行任何更改。 我没有任何使用 ColdFusion 的经验,但无法想象它与任何其他数据库客户端的连接方式有何不同。它应该依赖于 oracle 的 jdbc 瘦客户端或标准的 oracle 客户端库。唯一的问题是 那些 库是否太落后了。您从哪个数据库版本升级? @EdStevens Adobe ColdFusion 带有一些商业 Oracle JDBC 驱动程序。使用精简驱动程序确实始终是一种选择。 当前的 Oracle 是 12c(哎呀,我帖子里说 11g,我的错) @BernhardDöbler - 那么操作只需要确保驱动程序与 Oracle 的目标版本兼容。如果他有一个 MOS 帐户(无法想象没有它就支持 Oracle),那么他可以查看客户端/服务器互操作性支持矩阵 - 文档 ID 207303.1 【参考方案1】:实际上,对于内置的 Oracle 数据库驱动程序,如果您将 SID 留空并将以下内容添加到您的连接字符串中,它应该可以工作:
ServiceName=myoracle.service.name;
【讨论】:
【参考方案2】:在我的商店中,我们切换到了 Oracle 19c,这很痛苦,因为每个 Oracle 数据源都需要以不同的方式重新创建。如果在从 12c 升级到 19c 期间,您的商店从使用 SID
切换到 SERVICE_NAME
,则本机 Oracle 驱动程序将不再工作,因为在创建数据源屏幕上没有 SERVICE_NAME
条目。相反,您必须使用“其他”为驱动程序创建数据源,然后使用 jdbc 瘦客户端。以下是您需要插入的值。
首先,您可能需要从 Oracle 网站下载 Oracle 瘦驱动程序。我不确定这一点,因为我们有另一个团队负责管理服务器。
驱动类: oracle.jdbc.OracleDriver
驱动程序名称: ojdbc.jar
JDBC URL: 转到您的 tnsnames.ora 文件,然后将条目复制并粘贴到 CF 管理员创建数据源屏幕中。但是,您将用jdbc:oracle:thin:@
替换DATABASE.WORLD=
并保持条目的其余部分相同。例如,如果您有一个 TNS 条目,内容为:
MYDB.WORLD=(DESCRIPTION=(ADDRESS=(COMMUNITY=TCP.WORLD)(PROTOCOL=TCP)(HOST=HOSTNAME)(PORT=2727))(CONNECT_DATA=(SERVICE_NAME=MYDB)))
然后您的 JDBC URL 将读取
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(COMMUNITY=TCP.WORLD)(PROTOCOL=TCP)(HOST=HOSTNAME)(PORT=2727))(CONNECT_DATA=(SERVICE_NAME=MYDB)))
最后,您可以前往here 获取类似但有些不同的信息。
【讨论】:
服务名称是在 1998 年在Oracle 8.1 中引入的。应用程序无法使用 tnsnames.ora 文件中的网络别名连接似乎很奇怪,这意味着可以使用 SID 或 SERVICE_NAME 并且该应用不会知道或关心。 肯定是 12c,CF 连接到 test 19 安装,但我他们没有任何数据可以尝试使用它。 @ChristopherJones 我不知道很久以前就引入了服务名称。但是,我的商店最近从使用 SID 切换到了 SERVICE_NAME。 CF 附带的本机 Oracle 驱动程序没有 SERVICE_NAME 条目,因此我们能够提出的唯一方法需要使用 jdbc 瘦客户端。如果 OP 可以确认他们在 O19c 升级期间切换,那么我提供的解决方案效果很好。 @michelleH 从 12c 升级到 19c 时,他们是否从使用 SID 更改为 SERVICE_NAME?如果是这样,jdbc 瘦客户端就像一个魅力。 如果您可以在某处放置一个 tnsnames 别名(并且 tnsnames.ora 文件一直存在),那么您无需更改为 jdbc。只需更改您的 tnsname.ora 条目映射以使用服务名称。一些相关的讨论在cx-oracle.readthedocs.io/en/latest/user_guide/…以上是关于Oracle 19c 连接到 ColdFusion 2018的主要内容,如果未能解决你的问题,请参考以下文章
使用 Oracle 11g 客户端连接到 Oracle 19C 服务器
将 ColdFusion 连接到 Google Bigquery
有人可以告诉我如何使用 ColdFusion 连接到 H2 数据库吗? [关闭]