2022년 1월 24일 월요일

HSODBC를 이용하여 ORACLE에서 MSSQL로 DB LINK 하기

 [ 출처 : https://oracle.tistory.com/189 ]

Oracle DB가 Windows에 설치 되어 있어야 가능합니다.

제어판상의 ODBC 데이터 원본 관리자 -> 시스템 DSN에 추가(시스템 환경 32/64에 맞추어 설정 되어야 함)

Listener에 추가(10g일 경우 hsodbc, 11g일 경우 dg4odbc로 등록함)

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = E:\app\Administrator\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:E:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
    (SID_DESC =
      (SID_NAME = MSSQL )
      (ORACLE_HOME = E:\app\Administrator\product\11.2.0\dbhome_1)
      (PROGRAM = dg4odbc)
    )

  )


Tnsname.ora에추가

MSSQL =
 (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = IP )(PORT = 1521))
    (CONNECT_DATA = (SID = MSSQL ))
    (HS=OK)
  ) 


환경 설정 파일 새로 생성

E:\app\Administrator\product\11.2.0\dbhome_1\hs\admin\initMSSQL.ora

# This is a sample agent init file that contains the HS parameters that are
# needed for the Database Gateway for ODBC
#
# HS init parameters
#

HS_FDS_CONNECT_INFO = MSSQL
HS_FDS_TRACE_LEVEL = 1
HS_DB_DOMAIN = MSSQL
HS_DB_NAME = MSSQL

#
# Environment variables required for the non-Oracle system
#
#set <envvar>=<value>

설정이 완료되었으면 리스트 재 시작함.

lsnrctl stop / start

 

db link 생성

CREATE DATABASE LINK HSODBC
CONNECT TO user IDENTIFIED BY password USING tnsname


테이블 조회

SELECT * FROM table@hsodbc;

 




2022년 1월 7일 금요일

[ABAP]_PO Exit상에서 내용 변경 처리 하기

 PO User-Exit에서 데이터 변경 처리시 실 데이터에 업데이트 되지 않기에 별도 표준 테이블에

업데이트 처리하는 방법

프로그램별 표준 테이블 적용 대상이 틀림

 

  FIELD-SYMBOLS <FS> TYPE ANY.

  IF SY-TCODE 'ME21N' OR SY-TCODE 'ME22N'.
    LV_TABLE '(SAPLMEPO)POT[]'.
  ELSEIF SY-TCODE 'ME21' OR SY-TCODE 'ME22'.
    LV_TABLE '(SAPMM06E)POT[]'.
  ELSE.
    EXIT.
  ENDIF.

  LOOP AT TEKPO.

   데이터 처리 로직 추가..... 

    MODIFY TEKPO.
    CLEARTEKPO.
  ENDLOOP.

  ASSIGN (LV_TABLETO <FS>.
  <FS> TEKPO[].
  UNASSIGN <FS>.