OPENQUERY
โป ์ฃผ์์ฌํญ
OPENQUERY๋ก ์ ๋ฌํ๋ ์ฟผ๋ฆฌ๋ ์ฐ๊ฒฐ๋ ์๋ฒ์ ์ฟผ๋ฆฌ ๋ฌธ๋ฒ์ด์ด์ผ ํฉ๋๋ค. (ex. MS์ T-SQL์ Oracle DB์์ ์ฌ์ฉํ ์ ์์)
MSSQL ์์์ ๋น ๋ฌธ์์ด(
''
)์ ์ค๋ผํด์์NULL
๊ณผ ๊ฐ์ต๋๋ค.
FROM OPENQUERY
SELECT
SELECT [์ปฌ๋ผ๋ช
] FROM OPENQUERY([์ฐ๊ฒฐ๋ ์๋ฒ๋ณ์นญ], 'SELECT [์ปฌ๋ผ๋ช
] FROM [ํ
์ด๋ธ]')
--ex 1)
SELECT * FROM OPENQUERY(ORCL, 'SELECT * FROM BA030T')
--ex 2)
SELECT * FROM OPENQUERY(ORCL, 'SELECT itemcd, itemnm FROM BA030T WHERE useyn = ''Y''')
SELECT : ์ธ๋ถ ๋ณ์ ์ฒ๋ฆฌ ์์
DECLARE @v_useyn varchar(1) = 'Y'
DECLARE @v_query nvarchar(1000) = '
SELECT * FROM OPENQUERY(ORCL, ''SELECT itemcd, itemnm FROM BA030T WHERE useyn = ''''' + @v_useyn + ''''''')'
PRINT @v_query
EXEC (@v_query)
DELETE
DELETE FROM OPENQUERY([์ฐ๊ฒฐ๋ ์๋ฒ๋ณ์นญ], 'SELECT [์ปฌ๋ผ๋ช
] FROM [ํ
์ด๋ธ]')
--ex)
DELETE FROM OPENQUERY(ORCL, 'SELECT * FROM BA030T WHERE itemcd = ''100-17-011''')
INSERT INTO (์ฐ๊ฒฐ๋ ์๋ฒ โ MSSQL)
INSERT INTO [ํ
์ด๋ธ๋ช
]
SELECT [์ปฌ๋ผ๋ช
] FROM OPENQUERY ([์ฐ๊ฒฐ๋ ์๋ฒ๋ณ์นญ], 'SELECT [์ปฌ๋ผ๋ช
] FROM [ํ
์ด๋ธ๋ช
]')
--ex)
INSERT INTO BA030T
( itemcd, itemnm, itemacnt, insiz, spec )
SELECT * FROM OPENQUERY(ORCL, '
SELECT itemcd, itemnm, itemacnt, insiz, spec
FROM BA030T
WHERE itemcd = ''#361-UC-106-4-01''')
INSERT INTO OPENQUERY
INSERT INTO (MSSQL โ ์ฐ๊ฒฐ๋ ์๋ฒ)
INSERT INTO OPENQUERY ([์ฐ๊ฒฐ๋ ์๋ฒ๋ณ์นญ], 'SELECT [์ปฌ๋ผ๋ช
] FROM [ํ
์ด๋ธ๋ช
]')
SELECT [์ปฌ๋ผ๋ช
] FROM [ํ
์ด๋ธ๋ช
];
--ex 1)
INSERT INTO OPENQUERY (ORCL, 'SELECT * FROM BA030T')
SELECT * FROM BA030T WHERE itemcd <> ''
--ex 2)
INSERT INTO OPENQUERY (ORCL, 'SELECT itemcd, itemnm FROM BA030T')
SELECT itemcd, itemnm FROM BA030T WHERE itemcd = '100-17-011'
UPDATE OPENQUERY
UPDATE
UPDATE OPENQUERY([์ฐ๊ฒฐ๋ ์๋ฒ๋ณ์นญ], 'SELECT [์ปฌ๋ผ๋ช
] FROM [ํ
์ด๋ธ]') SET [์ปฌ๋ผ๋ช
] = [๊ฐ]
--ex)
UPDATE OPENQUERY(ORCL, 'SELECT *
FROM BA030T
WHERE itemcd = ''100-17-011''') SET
BNATUR = 'A10',
SETBNATUR = 'B20'
Execute Procedure
linked server to oracle
DECLARE @p_itemcd varchar(100) = '#361-UC-106-01',
@p_itemnm varchar(100) = 'A',
@p_result_code varchar(100) = '',
@p_result_msg varchar(100) = '';
EXECUTE ('BEGIN P_ORACLE_TEST(?, ?, ?, ?); END;', @p_itemcd, @p_itemnm, @p_result_code OUTPUT, @p_result_msg OUTPUT) AT ORCL;
SELECT @p_result_code, @p_result_msg
Difference
ORACLE โ MS SQL
Oracle
MS SQL
||
+
FROM DUAL
FROM์ ์ญ์
LENGTH
LEN
MOD
%
SYSDATE
GETDATE()
NVL(a, b)
ISNULL(a, b)
TO_CHAR(๋ ์ง, 'YYYY-MM-DD')
CONVERT(VARCHAR(10), ๋ ์ง, 120)
TO_DATE(๋ฌธ์์ด)
CONVERT(DATETIME, ๋ฌธ์์ด)
ETC
Oracle SQL Developer ๋ค์ด๋ก๋ (ํ์ ์)

Last updated