来自Oracle到SQL 2019的外部表

4

我正在尝试在SQL 2019上创建一个外部表,该表位于Oracle数据库(12C)中。

首先在SQL数据库上创建主密钥。

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'reallycomplicatePassword@1';

接下来,我创建了Oracle数据库凭据。

CREATE DATABASE SCOPED CREDENTIAL [OracleCredential]
WITH IDENTITY = 'oracleUserNameHere', SECRET = 'oraclePasswordHere';

接下来我创建了数据源

CREATE EXTERNAL DATA SOURCE [OracleSalesSrvr]
WITH (LOCATION = 'oracle://myoracleserver',CREDENTIAL = [OracleCredential]);

最后,我尝试创建表格

  CREATE EXTERNAL TABLE Recharge(

    ORIGINTRANSACTIONID            VARCHAR(20) COLLATE Latin1_General_BIN NOT NULL,
    ORIGINOPERATORID               VARCHAR(255) COLLATE Latin1_General_BIN NOT NULL

   )
   WITH (
    LOCATION='.SomeOracleSchema.Recharge',
    DATA_SOURCE= OracleSalesSrvr
   );

但是收到了以下错误:

Msg 105082,级别 16,状态 1,行 1:105082; 通用ODBC错误: [Microsoft][ODBC Oracle Wire Protocol driver]缺少连接数据源的信息。 其他错误 <2>:ErrorMsg: [Microsoft][ODBC Oracle Wire Protocol driver]缺少连接数据源的信息, SqlState: HY000,NativeError: 0

我猜想在创建 EXTERNAL DATA SOURCE 时没有指定服务名或 SID,但我不确定是否可以这样做或如何操作(如果确实需要)。


1
我在网上看到一些关于Oracle和其他数据库(例如Progress和DB2)的错误帖子,它们共同的一点是提到ODBC.INI未正确配置。我建议您找到Oracle主目录中的ODBC.INI,并查看HostName、PortNumber、ServiceName等设置,确保它们正确且存在(如果不存在)。参考链接:https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=479856844300829 - Jeff Mergler
相同的问题在这里,我尝试向微软询问更好的文档记录...... 我尝试了连接选项,但没有成功...... - OpenStove
1个回答

1
我的数据库管理员找到了解决方案: 使用以下语句: WITH( LOCATION='[服务名称].[模式名称].[表名]',

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接