Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2000 Forums
 SQL Server Development (2000)
 distributed transactions with Oracle

Author  Topic 

smccreadie
Aged Yak Warrior

505 Posts

Posted - 2001-09-07 : 12:06:08
I'm attempting to grab records through a linked Oracle database and put them into a temporary table on SQL7.

My code is

 CREATE TABLE #PTS_CLINICAL_RESULTS
(DATE_VERIFIED SMALLDATETIME, DATETIME_TEST_PERFORMED DATETIME, EVENT_CDR_ID INT,
FILLER_APP_ORDER_NBR VARCHAR(55), HI_LOW_AA_FLAG CHAR(1), PATIENT_CDR_ID NUMERIC(22,0),
REFERENCES_RANGE VARCHAR(20), RESULT_SEQ NUMERIC(22,0), RESULT_STATUS CHAR(1),
RESULT_TEST_CODE VARCHAR(10), RESULT_TEST_NAME VARCHAR(30), RESULT_TYPE CHAR(2),
RESULT_UNITS VARCHAR(60), RESULT_VALUE VARCHAR(78), RESULT_TEXT TEXT)

DECLARE @pt_ids VarChar(8000)
SELECT @pt_ids = COALESCE(@pt_ids + ''''',''''','(''''') +
CAST(RTRIM(PATIENT_CDR_ID) as varchar(10))+ '' FROM #PTLIST
SELECT @pt_ids = @pt_ids + ''''')'

DECLARE @SQL nVarChar(4000)

SELECT @SQL = N'SELECT DATE_VERIFIED, DATETIME_TEST_PERFORMED, EVENT_CDR_ID,
FILLER_APP_ORDER_NBR, HI_LOW_AA_FLAG, PATIENT_CDR_ID,
REFERENCES_RANGE, RESULT_SEQ, RESULT_STATUS, RESULT_TEST_CODE, RESULT_TEST_NAME,
RESULT_TYPE, RESULT_UNITS, RESULT_VALUE, RESULT_TEXT FROM OPENQUERY(CDRQ, ''SELECT DATE_VERIFIED, DATETIME_TEST_PERFORMED, EVENT_CDR_ID,
FILLER_APP_ORDER_NBR, HI_LOW_AA_FLAG, PATIENT_CDR_ID,
REFERENCES_RANGE, RESULT_SEQ, RESULT_STATUS, RESULT_TEST_CODE, RESULT_TEST_NAME,
RESULT_TYPE, RESULT_UNITS, RESULT_VALUE, RESULT_TEXT
FROM CDR.CLINICAL_RESULT WHERE DATE_VERIFIED > SYSDATE - 3 ANDPATIENT_CDR_ID IN ' + CAST(@pt_ids as NVarChar(4000)) + N''')'

INSERT INTO #PTS_CLINICAL_RESULTS (DATE_VERIFIED, DATETIME_TEST_PERFORMED, EVENT_CDR_ID,
FILLER_APP_ORDER_NBR, HI_LOW_AA_FLAG, PATIENT_CDR_ID,
REFERENCES_RANGE, RESULT_SEQ, RESULT_STATUS, RESULT_TEST_CODE, RESULT_TEST_NAME,
RESULT_TYPE, RESULT_UNITS, RESULT_VALUE, RESULT_TEXT)

EXEC sp_executesql @SQL


The connection and pull from Oracle works fine but I can't put them into the local temp table. I get an error Server: Msg 7391, Level 16, State 1, Line 1
The operation could not be performed because the OLE DB provider 'MSDAORA' was unable to begin a distributed transaction.


How can I either support these transactions or block these distributed transactions?



   

- Advertisement -