레이블이 MS SQL인 게시물을 표시합니다. 모든 게시물 표시
레이블이 MS SQL인 게시물을 표시합니다. 모든 게시물 표시

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;

 




2016년 6월 17일 금요일

MSSQL 관련 SQL문장

테이블 목록 보기

sp_tables
select * from information_schema.tables
select name from sysobjects where type='U'


2016년 1월 20일 수요일

MS SQL 날자 함수

1. GETDATE() 시스템날짜 리턴
SELECT GETDATE()
2011-05-24 오전 11:22:33
SELECT GETDATE()+100
2011-09-01 오전 11:22:33

2. CONVERT() 결과값의 데이터 타입 변환
SELECT CONVERT(varchar(30), GETDATE(), 100)
May 24 2011 10:51 AM
SELECT CONVERT(varchar(30), GETDATE(), 101)
05/24/2011
SELECT CONVERT(varchar(30), GETDATE(), 102)
2011.05.24
SELECT CONVERT(varchar(30), GETDATE(), 103)
24/05/2011
SELECT CONVERT(varchar(30), GETDATE(), 104)
24.05.2011
SELECT CONVERT(varchar(30), GETDATE(), 105)
24-05-2011
SELECT CONVERT(varchar(30), GETDATE(), 106)
24 May 2011
SELECT CONVERT(varchar(30), GETDATE(), 107)
May 24 2011
SELECT CONVERT(varchar(30), GETDATE(), 108)
11:22:33
SELECT CONVERT(varchar(30), GETDATE(), 109)
May 24 2011 11:22:33:140AM
SELECT CONVERT(varchar(30), GETDATE(), 110)
05-24-2011
SELECT CONVERT(varchar(30), GETDATE(), 111)
2011/05/24
SELECT CONVERT(varchar(30), GETDATE(), 112)
20110524
SELECT CONVERT(varchar(30), GETDATE(), 113)
24 May 2011 11:22:33140
SELECT CONVERT(varchar(30), GETDATE(), 114)
11:22:33:140

3. DATEPART() 날짜에서 지정한 날짜형식부분만 추출
형식: DATEPART(날짜형식,날짜)
년/월/일/시/분/초/요일
DATEPART(yy,GETDATE())
2011
DATEPART(mm,GETDATE())
5
DATEPART(dd,GETDATE())
24
DATEPART(hour,GETDATE())
11
DATEPART(mi,GETDATE())
22
DATEPART(ss,GETDATE())
33
DATEPART(dw,GETDATE())
6

4. YEAR(), MONTH(), DATE() 년월일을 추출
SELECT YEAR(GETDATE())
2011
SELECT MONTH(GETDATE())
5

5. DATEADD() 날짜에 지정한만큼 더한다
형식: DATEADD(날짜형식,더할값,날짜)
SELECT DATEADD(mm,20,GETDATE())
2004-01-24 오전 11:22:33 현재날짜의 20달 후의 날짜를 출력
SELECT DATEADD(dd,100,GETDATE()) 현재날짜의 100일 후의 날짜를 출력
2011-09-01 오전 11:22:33

6. Datediff()  - 지정한 두 날짜의 간의 겹치는 날짜 및 시간 범위 반환
예)SELECT DateDiff(d,getdate(),(getdate()+31))

7. Getutcdate() -현재 UTC 시간을 나타내는 datetime 값을 반환
예) SELECT Getutcdate()

Without century (yy)

With century (yyyy)
Standard
Input/Output**
-
0 or 100 (*)
Default
mon dd yyyy hh:mi AM (or PM)
1
101
United States
mm/dd/yyyy
2
102
ANSI
yy.mm.dd
3
103
British/French
dd/mm/yy
4
104
German
dd.mm.yy
5
105
Italian
dd-mm-yy
6
106
-
dd mon yy
7
107
-
Mon dd, yy
8
108
-
hh:mm:ss
-
9 or 109 (*)
Default + milliseconds
mon dd yyyy hh:mi:ss:mmm AM (or PM)
10
110
United States
mm-dd-yy
11
111
JAPAN
yy/mm/dd
12
112
ISO
Yymmdd
-
13 or 113 (*)
Europe default + milliseconds
dd mon yyyy hh:mm:ss:mmm (24h)
14
114
-
hh:mi:ss:mmm (24h)
-
20 or 120 (*)
ODBC canonical
yyyy-mm-dd hh:mi:ss (24h)
-
21 or 121 (*)
ODBC canonical (with milliseconds)
yyyy-mm-dd hh:mi:ss.mmm (24h)
-
126(***)
ISO8601
yyyy-mm-ddThh:mm:ss.mmm (no spaces)
-
130*
Hijri****
dd mon yyyy hh:mi:ss:mmm AM
-
131*
Hijri****
dd/mm/yy hh:mi:ss:mmm AM