【问题标题】:External Table from Oracle to SQL 2019从 Oracle 到 SQL 2019 的外部表
【发布时间】:2020-07-15 22:46:59
【问题描述】:

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

首先在 SQL DB 上创建主密钥

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

接下来我创建了 Oracle DB 凭证。

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
   );

但收到以下错误:

消息 105082,级别 16,状态 1,第 1 行 105082;通用 ODBC 错误: [Microsoft][ODBC Oracle Wire Protocol driver]信息不足 连接到数据源。附加错误 : ErrorMsg: [Microsoft][ODBC Oracle Wire Protocol driver]信息不足 连接数据源。SqlState: HY000, NativeError: 0

我猜我在创建外部数据源时没有指定服务名称或 SID 但我不确定这是否可能或如何做到,(如果是的话)。

【问题讨论】:

  • 我在网上看到一些关于 Oracle 和其他数据库(例如 Progress 和 DB2)的错误的帖子,它们的共同点是提到 ODBC.INI 配置不正确。我会在您的 Oracle 主页中找到 ODBC.INI,并查看主机名、端口号、服务名等设置,并确保它们正确且存在(如果不存在)。参考。 support.oracle.com/epmos/faces/…
  • 这里有同样的问题,我试图让微软更好地记录它......我尝试使用连接选项;但我没有成功...

标签: sql-server oracle


【解决方案1】:

我的 dba 找到的解决方案: 和( LOCATION='[ServiceName].[SchemaName].[Table]',

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-22
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多