database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 1343 게시물 읽기
No. 1343
MS-SQL과 Oracle 연동 관련 질문
작성자
사람
작성일
2004-05-21 21:43
조회수
6,601

MS-SQL이랑 Oracle로 이것 저것 해보다가 질문이 몇가지 생겨서 써봅니다.
당연히 둘을 연동하는 얘기인데

일단 Oracle에서 MS-SQL을 보려면 GateWay라는 게 필요하다는건 알았는데 어떻게 설치해서
어떻게 사용하는건지 자료를 찾기가 힘들더군요...^^;;;
설명을 해주실 수 있으면 좋고 관련 자료가 있으면 알려주시면 감사하겠습니다.

그래서 MS-SQL에서 Oracle로 연결된 서버를 이용해서 이것 저것 해보았습니다.

우선 MSDAORA 로 연결해서 질의를 만들어 보았습니다.

select * from oracle1..test.testtable
insert into oracle1..test.testtable values(1, 'test')

같은 질의 들이 잘 되더군요.
그런데 문제는 begin tran, rollback, commit 등을 사용하여 만든 질의에 대해서는

서버: 메시지 7391, 수준 16, 상태 1, 줄 3
OLE/DB 공급자 'MSDAORA'이(가) 분산 트랜잭션을 시작할 수 없으므로 작업을 수행할 수 없습니다.
OLE DB 오류 추적 [OLE/DB Provider 'MSDAORA' ITransactionJoin::JoinTransaction returned 0x8004d01b].

라는 메시지가 나왔습니다. 분산 트랜잭션이 안된다는 걸 보면
Oracle에서 MSDTC인가 하는 것과 비슷한 것이 있어서
그걸 설치 해야 한다거나 아니면 MSDAORA로는 분산 트랜잭션이 안된다거나 하는 걸꺼라고
추측하고 있는데 어떤 것인지 모르겠군요.
그런게 아니면 분산 트랜잭션을 수행하려면 어떻게 해야 하는지 알려 주시면 감사하겠습니다.

다음으로 OraOLEDB.Oracle로 연결된 서버를 만들어서 질의를 해보았습니다.

위와 같인 그냥 select를 수행해보았는데

서버: 메시지 7356, 수준 16, 상태 1, 줄 1
OLE DB 공급자 'OraOLEDB.Oracle.1'이(가) 열에 대해 일관성 없는 메타데이터를 제공했습니다. 런타임 시 메타데이
터 정보가 변경되었습니다.
OLE DB 오류 추적 [Non-interface error: Column 'NAME' (compile-time ordinal 2) of object test.testtable' was
reported to have a DBTYPE of 129 at compile time and 130 at run time].

같은 메시지가 출력되었습니다.

그래서

select * from openquery(oracle, 'select * from "TEST"."TABLE"')

와 같이 질의를 던졌더니.

서버: 메시지 7320, 수준 16, 상태 2, 줄 1
OLE DB 공급자 'OraOLEDB.Oracle.1'에 대해 쿼리를 실행할 수 없습니다.
OLE DB 오류 추적 [OLE/DB Provider 'OraOLEDB.Oracle.1' ICommandText::Execute returned 0x80040155].

라는 메시지가 나오는 군요.

insert, transaction은 어떻게 해야 하는지도 몰라서 해보지도 못했구염..;;;

프로바이더가 이상하게 설치 되었거나 하지는 않았을거 같은게
C++에서
dbSource.Open(_T("OraOLEDB.Oracle.1"), _T("svr"), _T("id"), _T("pass"));
같은 식으로 접속해서 위의 select를 하니 잘 되는군요...;;;

그래서 이것 저것 적었는데 알고 싶은 걸 정리하면

gateway의 설치 방법 및 사용법
ms-sql의 연결된 서버 MSDAORA 사용시 분산 트랜잭션 사용법
ms-sql의 연결된 서버 OraOLEDB.Oracle.1 사용시 질의 방법 및 분산 트랜잭션 사용법

정도 되겠습니다.

즐거운 하루 되세요

[Top]
No.
제목
작성자
작성일
조회
1346작업일정을 다른 데이터베이스 서버로 가져오는 방법은?
소리
2004-05-24
2668
1345퍼포먼스를 높이는 쿼리... [2]
김명섭
2004-05-22
4643
1344datetime에 null값으로 저장할려고 하는데...도와주세요 [2]
레오
2004-05-22
4680
1343MS-SQL과 Oracle 연동 관련 질문
사람
2004-05-21
6601
1342[질문]MYSQL설치했는데 실행이 안됩니다.T-T
윤세민
2004-05-21
2687
1341GROUP BY 에 대해서 [5]
로야
2004-05-21
7361
1340각 id에 해당하는 판매금액을 해당월로 산출할려하는데요 [1]
초보자
2004-05-21
3240
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다