我正在尝试在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,但我不确定是否可以这样做或如何操作(如果确实需要)。