Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 19c连接到ColdFusion 2018_Oracle_Coldfusion_Connection_Oracle19c_Coldfusion 2018 - Fatal编程技术网

Oracle 19c连接到ColdFusion 2018

Oracle 19c连接到ColdFusion 2018,oracle,coldfusion,connection,oracle19c,coldfusion-2018,Oracle,Coldfusion,Connection,Oracle19c,Coldfusion 2018,Windows 2016服务器上的ColdFusion 2018,目前使用Oracle 12c 我所在的机构正在计划将Oracle升级到19c,但我在CF文档中没有找到与19c数据库连接的任何信息 有人这样做过吗?有什么我应该知道的吗?我们的CF安装是最新的 谢谢, Michelle在我的店里,我们切换到了Oracle 19c,这是一件痛苦的事情,因为每个Oracle数据源都需要重新创建,只是方式不同而已。如果在从12c升级到19c的过程中,您的商店从使用SID切换到SERVICE\u NAME

Windows 2016服务器上的ColdFusion 2018,目前使用Oracle 12c

我所在的机构正在计划将Oracle升级到19c,但我在CF文档中没有找到与19c数据库连接的任何信息

有人这样做过吗?有什么我应该知道的吗?我们的CF安装是最新的

谢谢,


Michelle

在我的店里,我们切换到了Oracle 19c,这是一件痛苦的事情,因为每个Oracle数据源都需要重新创建,只是方式不同而已。如果在从12c升级到19c的过程中,您的商店从使用
SID
切换到
SERVICE\u NAME
,则本机Oracle驱动程序将不再工作,因为在创建数据源屏幕上没有
SERVICE\u NAME
条目。相反,您必须为驱动程序使用“Other”创建数据源,然后使用jdbc瘦客户机。以下是您需要插入的值

首先,您可能需要从Oracle网站下载Oracle精简驱动程序。我不确定这一点,因为我们有另一个团队来管理服务器

驱动程序类:
oracle.jdbc.OracleDriver

驱动程序名称:
ojdbc.jar

JDBC URL:转到您的tnsnames.ora文件,在CF Admin create datasource屏幕中复制并粘贴该条目。但是,您将用jdbc:oracle:thin:@替换
DATABASE.WORLD=
,并保持条目的其余部分不变。例如,如果您有一个TNS条目,其内容如下:

MYDB.WORLD=(DESCRIPTION=(ADDRESS=(COMMUNITY=TCP.WORLD)(PROTOCOL=TCP)(HOST=HOSTNAME)(PORT=2727))(CONNECT_DATA=(SERVICE_NAME=MYDB)))
然后您的JDBCURL将读取

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(COMMUNITY=TCP.WORLD)(PROTOCOL=TCP)(HOST=HOSTNAME)(PORT=2727))(CONNECT_DATA=(SERVICE_NAME=MYDB)))

最后,您可以查找类似但略有不同的信息。

实际上,对于内置的Oracle数据库驱动程序,如果您将SID保留为空,并将以下内容添加到连接字符串中,则应该可以使用:

ServiceName=myoracle.service.name;

在最近的一个项目中,我们更新到19c,并且不需要对ColdFusion数据源进行任何更改。我没有任何ColdFusion方面的经验,但无法想象它与任何其他数据库客户端的连接会有什么不同。它应该依赖于用于oracle的jdbc瘦客户端或标准oracle客户端库。唯一的问题是这些图书馆是否远远落后。您从哪个数据库版本升级?@EdStevens Adobe ColdFusion附带了一些商业Oracle JDBC驱动程序。使用精简驱动程序确实一直是一种选择。当前的Oracle是12c(哦,我的帖子中说11g,我的坏)@BernhardDöbler-那么op只需要确保驱动程序与Oracle的目标版本兼容。如果他有一个MOS帐户(无法想象没有它支持Oracle),那么他可以查看客户机/服务器互操作性支持列表-文档ID 207303.1 1998年引入的服务名称。似乎很奇怪,应用程序无法使用tnsnames.ora文件中的网络别名进行连接,这意味着可以使用SID或服务名称,而应用程序不会知道或关心。肯定是12c,CF连接到test 19安装,但我认为他们没有任何数据来尝试使用它。@ChristopherJones我不知道服务名称是在那么久以前引入的。然而,我的商店最近从使用SID改为使用服务名称。CF附带的本机Oracle驱动程序没有SERVICE_NAME的条目,因此我们能够提出的唯一方法是使用jdbc瘦客户机。如果OP可以确认他们在O19c升级期间切换了,那么我提供的解决方案工作得很好。@michelleH当从12c升级到19c时,他们是否从使用SID更改为服务名称?如果是这样的话,jdbc瘦客户机工作起来就像一个魔咒。如果你可以把tnsnames别名放在那里的某个地方(tnsnames.ora文件已经存在了很久),那么你就不需要改成jdbc。只需更改tnsname.ora条目映射以使用服务名称。一些相关的讨论正在进行中