现象:
Using Oracle OLEDB driver, When linked server is executing two INSERT/UPDATE statements simultaneously.The first statement would always succeed, but the second one always fails with below error.
Msg 7353, Level 16, State 1, Line 18
The OLE DB provider "OraOLEDB.Oracle" for linked server "<TEST>" supplied inconsistent metadata. An extra column was supplied during execution that was not found at compile time.
Test case:
DECLARE @temp TABLE
(
displayName varchar(255),
sAMAccountName varchar(255),
mail varchar(255),
telephoneNumber varchar(255),
title varchar(255),
department varchar(255),
physicalDeliveryOfficeName varchar(255),
company varchar(255)
);
INSERT INTO @temp SELECT *
FROM OPENQUERY(TEST, 'SELECT displayName, sAMAccountName, mail, telephoneNumber, title, department, physicalDeliveryOfficeName, company FROM TEST1.TEA_ACTIVE_DIRECTORY_bk1' );
INSERT INTO OPENQUERY(TEST, 'SELECT EMPLOYEENAME,
LOGINID,
EMAIL,
PHONE,
TITLE,
DEPARTMENT,
PHYICALOFFICENAME,
COMPANY FROM TEST1.TEA_ACTIVE_DIRECTORY') SELECT * FROM @temp;
INSERT INTO @temp SELECT *
FROM OPENQUERY(TEST, 'SELECT displayName, sAMAccountName, mail, telephoneNumber, title, department, physicalDeliveryOfficeName, company FROM TEST1.TEA_ACTIVE_DIRECTORY_bk1' );
INSERT INTO OPENQUERY(T123, 'SELECT EMPLOYEENAME,
LOGINID,
EMAIL,
PHONENO,
TITLE,
DEPARTMENT,
PHYICALOFFICENAME,
COMPANY FROM TEST1.TEA_ACTIVE_DIRECTORY') SELECT * FROM @temp;
原因:
The cause of this problem has been identified as :
Bug 31892754 - 19C OLEDB PROVIDER EXECUTION FAILS WITH INCONSISTENT METADATA IN A LINKED SERVER
处理方法
Issue has been fixed in Patch 31892754 on 19c for Windows. For other versions and OS, Please raise a backport request.
引用:
BUG:31892754 - 19C OLEDB PROVIDER EXECUTION FAILS WITH INCONSISTENT METADATA IN A LINKED SERVER
|