[ The imperialist Japanese military must officially acknowledge and apologize for the coercion of young women into sexual slaves. / 幼い女性を性の奴隷にした帝國主義日本軍の?制性を公式に認め、謝罪しなければならない. ]

사용자

ID:
PW:

INDEX
01.게시판
게시판 [71]
02.File Book
File 자료실 [96]
Site Link [14]
개인폴더 [201]
03.Field Book
Altibase [19]
Tibero [30]
MS-SQL [25]
MySQL [43]
DB2 [79]
ORACLE [3054]
PSQL [135]
CUBRID [5]
기타정보 [158]
운영체제 [607]
04.Q/A Book
Q/A [53]
05.방명록
방명록 [54]
레벨업 [37]
구인/구직 [2]

기념일
Search
LINK
+ 가족 Hompy
+ DNSEver
IOTN :: Field Book :: ORACLE

 회원가입

ORACLE과 MSSQL간의 DBLINK 방법
최길호 [LIST]   2008-09-19 08:04:51, 조회 : 65,349


ORACLE과 MSSQL간의 DBLINK 방법

Oracle_Transaparent Gateway for Microsoft MSSQL
===================================================================================================
오라클 제품군 중에 Oracle_Transaparent Gateway for Microsoft MSSQL 라는 게 있습니다.

오라클 Enterprise Edition이 설치된 상태에서 별도 구매해야하는 제품입니다만 이름이 의미하듯이 이기종 DB와 연결시 매우 뛰어난 성능을 보여줍니다.
MS SQL에서 ORACLE을 연결할때 LINKED SERVER 기술이 사용됩니다. ODBC를 기반으로 하고 있고 무료로 이용할 수 있지만 OLTP 목적으로 사용하기에는 부적합니다.

아래의 내용으로 TEST를 해보시기 바랍니다.
1.        Oracle Enterprise Edition을 Windows Platform을 갖는 Machine에 설치한다.
2.        설치 Option에서 Transparent Gateway for Microsoft SQL Server Option을 추가 설치한다.
3.        연결하고자 하는 MS SQL Server의 IP Address와 Hostname을 lmhosts 파일에 등록하거나 WINS Server를 통해 등록한다.
4.        $ORACLE_HOME\tg4msql\admin 디렉토리 아래의 inittg4msql.ora 파일을 initSID.ora 로 복사한다. (SID는 사용자가 MS SQL Server별로 지정할 수 있다.)
5.        신규로 생성한 initSID.ora 파일을 Open 후 HS_FDS_CONNECT_INFO 값을 <MS SQL Server 설치 Machin 이름>.<Database 이름> 을 지정한다. 단, MS SQL Server가 설치된 Machine의 경우 Host 이름으로 입력하도록 한다. IP Address는 사용하지 않는다.
6.        $ORACLE_HOME\network\admin 디렉토리 아래의 listener.ora 파일을 Open 후 다음과 같은 내용을 추가한다.
(SID_DESC =
      (SID_NAME = SID)
      (ORACLE_HOME = $ORACLE_HOME)
      (PROGRAM = tg4msql)
    )
7.        $ORACLE_HOME\network\admin 디렉토리 아래의 tnsnames.ora 파일을 Open 후 다음과 같은 내용을 추가한다.
SID =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = Transparent Gateway가 설치된 Machine의 IP  Address)(PORT = Listener에서 사용하는 Port번호))
    (CONNECT_DATA =
      (SID = SID))
    (HS = OK)
  )
8.        Datbase Link 또는 Public Database Link를 생성할 수 있는 권한이 있는 사용자로 Login한 후 다음과 같은 방식으로 Database Link를 생성한다. (여기서는 Public Database Link를 생성하였다.)
create public database link 사용자가 식별하고자 하는 이름 connect to sa identified by simsnt using 'TNSNAMES.ORA에서 지정한 이름';
9.        Database Link처럼 사용한다.

http://blog.naver.com/addibuddi/47467768



MS-SQL의 Open Query
===================================================================================================
http://www.en-core.com/bin/main/module/solution/admin_view.asp?solution_code=&searchString=&column=&board_id=solution&state=view&article_id=19469&location=&page_num=1&group_id=19570&direction=n&step=0

SQL Server에서 Oracle table QUERY하기

SQL Server의 Transact-SQL문에서는 SQL Server외 어떤 OLE DB data source에 대해서도 접근이 가능하다. 이를 위해서는 Linked server name (LINKED SERVER)이나 Ad hoc connector name (OPENROWSET) 두 가지 방식을 지원한다. Linked server name은 자주 사용하는 경우에Connection에 대한 정보를 미리 등록해서 Linked Server를 생성해 놓고 사용하는 방식이며, Ad hoc connector name은 자주 사용하지 않는 경우에 사용하며 connection 정보를 매번 제공하는 방식이다. 이중에서 Linked server name방식을 통해서 Oracle(테스트에는 8.1.7 Version이 사용되었다.)에 존재하는 Table에 DML을 수행하고자 할 경우 설정방법과 주의점에 대해서 알아보고자 한다.

1. Oracle Client 설치 및 Oracle Net Service Name 등록 하기

Oracle에 접속하기 위해서는 Oracle client를 설치하고 접속하고자 하는 Oracle DB에 대한 정보를 등록해줘야 한다. 이 과정에서 ODBC Data Source Name과 비슷한 역할을 하는Oracle Net Service Name을 등록하게 된다. 설치 및 ODBC Data Source Name등록에 대한 설명은 Oracle client 설치 가이드를 참고 하기 바란다.

2. Linked server 등록하기

Linked server name방식으로 작업을 수행하기 위해서는 Enterprise Manager에서 Linked server를 설정하거나 T-SQL에서 Sp_addLinkedServer, Sp_addLinkedSrvLogin, Sp_serverOption, Sp_dropServer 등을 이용해서 설정하면 된다. 각 SP에 대한 자세한 설명은 BOL(온라인설명서)를 참조하기 바라며, 아래는 Linked server를 생성하는 간단한 예이다.

(1) Linked server 생성하기

  sp_addlinkedserver [ @server = ] 'server'
    [ , [ @srvproduct = ] 'product_name' ]
    [ , [ @provider = ] 'provider_name' ]
    [ , [ @datasrc = ] 'data_source' ]
    [ , [ @location = ] 'location' ]
    [ , [ @provstr = ] 'provider_string' ]
    [ , [ @catalog = ] 'catalog' ]



예) EXEC sp_addlinkedserver   'JYOra817',  'Oracle',  'MSDAORA',  'JY817'

- JY817이라는 Oracle Net Service Name으로 등록된 Oracle데이터베이스를 JYOra817이라는 이름의 Linked server로 등록한다.

(2) Login 생성하기

sp_addlinkedsrvlogin [ @rmtsrvname = ] 'rmtsrvname'
    [ , [ @useself = ] 'useself' ]
    [ , [ @locallogin = ] 'locallogin' ]
    [ , [ @rmtuser = ] 'rmtuser' ]
    [ , [ @rmtpassword = ] 'rmtpassword' ]

  예) EXEC sp_addlinkedsrvlogin 'JYOra817', 'FALSE', NULL, 'scott', 'tiger'

- JYOra817이라는 Linked server에 scott/tiger라는 아이디와 패스워드를 이용해서 로그인하는 정보를 등록한다.

3. Linked server를 이용한 QUERY수행하기

(1) OPENQUERY() 사용하기

앞서 생성한 Linked Sever를 이용해서 Query를 수행하고자 할 경우 OPENQUERY()라는 함수를 이용하는 방법이 있으며 구문은 아래와 같다.

OPENQUERY ( linked_server , 'query' )

OPENQUERY를 사용하는 예이다.
- select empno,ename,sal from OPENQUERY ( JYOra817 , 'select empno,ename,sal from scott.emp' )
- select * from OPENQUERY ( JYOra817 , 'select * from scott.emp')
              where empno=7521
- insert OPENQUERY ( JYOra817 , 'select * from scott.emp where 1=0' )
              values(100,'YONG','MANAGER',7902,'20041101',800,null,20)
- update OPENQUERY ( JYOra817 , 'select sal from scott.emp') set sal=100
- update JYOra817 ..SCOTT.EMP --- 대문자로
              SET sal = 100
- delete OPENQUERY ( JYOra817 , 'select rowid from scott.emp where empno=7566')
3.239.9.151


  LIST

제목 작성자 작성일 조회
Troubleshoot  ORA-03137: TTC    최길호 2018/04/24 1007007
WebLogic  weblogic cache    최길호 2018/02/28 237691
WebLogic  weblogic cluster session share [ 세션 공유 login.jsp login chk, weblogic.management.ManagementException: [Deployer:149188] ]    최길호 2018/03/03 124608
Troubleshoot  IMP-00003 ORA-32603: invalid FREEPOOLS LOB storage option value [ move lob table, lob index ]    최길호 2013/05/26 120224
Troubleshoot  proc, windows, vc 2003 , pcmake , Files\Microsoft은(는) 예상되지 않았습니다    최길호 2006/10/02 100261
Troubleshoot  dblink ORA-02068 ORA-03113 ORA-02080 [ ALTER SESSION CLOSE DATABASE LINK RDBNM; ]  [4]  최길호 2010/07/10 99054
Troubleshoot  ORA-00600: internal error code, arguments: [kcbzib_kcrsds_1]    최길호 2021/09/23 98788
WebLogic   WEB-INF/lib 우선 적용, index-directory-enabled 인덱스 디렉토리    최길호 2018/02/27 97316
WebLogic  java -jar fmw_12.2.1.3.0_wls.jar The OpenJDK JVM is not supported on this platform.    최길호 2018/02/06 86610
Troubleshoot  TRIGGER,Function ORA-02069 ORA-06512 ORA-04088 ORA-02070    최길호 2008/12/19 86504
Script  session monitor [ dbms_xplan sql binds ]  [2]  최길호 2010/06/30 85394
Troubleshoot  ORA-03297 Resizing Empty Datafile    최길호 2009/08/11 84496
Admin  dd copy datafile raw device , filesystem  [4]  최길호 2009/09/07 81827
SQL,PL*SQL  dbms_random 사용예  [1]  최길호 2010/04/12 81288
Troubleshoot  ODBC {Microsoft ODBC for Oracle}, ORA-12154, ODBC NA000 IM006 01000  [1]  최길호 2008/01/04 77684
Troubleshoot  ORA-12537 , <unknown connect data> * 12537  [2]  최길호 2009/11/21 68019
Troubleshoot  ALTER SESSION CLOSE DATABASE LINK    최길호 2010/07/11 66248
Admin  ORACLE과 MSSQL간의 DBLINK 방법    최길호 2008/09/19 65349
Troubleshoot  ld: 0711-224 WARNING: Duplicate symbol: p_xargc    최길호 2010/06/08 65325
Tool  RAC jdbc connection test [ thin java test.java sample ]  [3]  최길호 2010/06/14 61906

    목록보기   다음페이지 1 [2][3][4][5][6][7][8][9][10]..[153]   [다음 10개]
       

Copyright 1999-2024 Zeroboard / skin by 최길호(gilho.kr@gmail.com)
최근 댓글
2021/06/30
윈도우 서버에서 sqlplus .... ORA-...
by 최길호
2021/06/30
ORA-28500: connection from O...
by 최길호
2019/05/02
pkg 확인 SELECT * FROM AL...
by 최길호
최근 게시물
03/04
[기타정보]
아두이노 wifi web test.
by 최길호
03/01
[기타정보]
아두이노 스마트하우스 V2.
by 최길호
02/28
[ORACLE]
plsql run sql from column / 테....
by 최길호