【发布时间】: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