๐Ÿ“† Today I Learned(๊ฐœ๋ฐœ์–ธ์–ดํ•™์Šต)/ORACLE(DB)

    [ORACLE] ํ•ด๋‹น ํ…Œ์ด๋ธ”์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค ์กฐํšŒ

    ๊ฐœ์š” : ๊ธฐ์กด์— ์žˆ๋˜ ๋ฐ์ดํ„ฐํ…Œ์ด๋ธ”์— ์ƒˆ๋กœ์šด ์ปฌ๋Ÿผ์„ ์ถ”๊ฐ€ํ•˜๋Š” ์ž‘์—…์ด ํ•„์š”ํ•ด์กŒ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ฐ™์€ ํ…Œ์ด๋ธ” ๋ช…์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค๊ฐ€ ์—ฌ๋Ÿฌ๊ณณ์ผ ๊ฒฝ์šฐ ํ…Œ์ด๋ธ”์„ ์žฌ์ƒ์„ฑํ•  ๋•Œ ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค๋ฅผ ์ง€์ •ํ•ด์ฃผ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์กฐํšŒ๊ฐ€ ํ•„์š”ํ•ด์กŒ๋‹ค. ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค๋Š” ํ…Œ์ด๋ธ”์ด ์ €์žฅ๋˜๋Š” ์ €์žฅ์†Œ๊ฐ™์€ ๊ฐœ๋…์œผ๋กœ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค. ์ž‘์—… : ์ „์ฒด ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค ์กฐํšŒ SELECT * FROM DBA_TABLESPACES; ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ํ…Œ์ด๋ธ”๋ช…์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค ์กฐํšŒ SELECT TABLESPACE_NAME, TABLE_NAME FROM ALL_ALL_TABLES WHERE TABLE_NAME LIKE '%[์ฐพ๊ณ ์žํ•˜๋Š” ์‹ค์ œํ…Œ์ด๋ธ”๋ช…]%'; ๐Ÿ‘จ‍๐Ÿ’ป ๋‚˜์˜ ๊ฒฝ์šฐ ๊ฐœ๋ฐœํ™˜๊ฒฝ์—์„œ๋Š” ๊ธฐ์กด ์žˆ๋˜ ํ…Œ์ด๋ธ”์„ ๋ฐฑ์—… ํ›„ ๋‹ค..

    [ORACLE] WHERE์ ˆ ํ•œ ์ค„์— ์กฐ๊ฑด ์—ฌ๋Ÿฌ ๊ฐœ

    ๊ฐœ์š” : ์—…๋ฌด ์ˆ˜ํ–‰์ค‘์— ํ…Œ์ด๋ธ”์กฐํšŒํ• ๋•Œ ํŠน์ • ์ปฌ๋Ÿผ์— ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ์กฐ๊ฑด๊ณผ NULL์ธ ๋ฐ์ดํ„ฐ๋“ค์„ ๊ฐ™์ด ์กฐํšŒํ•ด์•ผ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ฒผ๋‹ค. ์ฒ˜์Œ์—๋Š” WHERE์ ˆ์— NOT IN()์„ ์‚ฌ์šฉํ•ด ์กฐํšŒํ•˜์˜€์œผ๋‚˜ COUNT()๋ฅผ ์‚ฌ์šฉํ–ˆ์„๋•Œ ํ™•์ธํ•ด๋ณธ ๋ฐ์ดํ„ฐ ์ˆซ์ž์™€ ๋งž์ง€ ์•Š์•˜๋‹ค. ๊ทธ๋ž˜์„œ AND์ ˆ์„ ์ถ”๊ฐ€ํ•ด IS NULL์„ ์กฐํšŒํ–ˆ์œผ๋‚˜ ๋‹น์—ฐํ•˜๊ฒŒ๋„ ๋‚˜์˜ค์ง€ ์•Š์•˜๋‹ค. ( ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š”๋ฐ NULL์ด๋ฉด์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์–ด์•ผํ•œ๋‹ค๋‹ˆ ๋ง์ด์•ˆ๋˜์ง€;; ) AND ๋Œ€์‹ ์— OR๋ฅผ ์“ฐ๋ฉด ๋˜์ง€์•Š์„๊นŒํ•ด์„œ ์‚ฌ์šฉํ•ด๋ดค์ง€๋งŒ ๋˜๋Š”์ด๋ผ๋Š” ๋œป์ด๊ธฐ ๋•Œ๋ฌธ์— ์›ํ•˜์ง€์•Š๋Š” ๋ฐ์ดํ„ฐ๊นŒ์ง€๋„ ์กฐํšŒ๊ฐ€ ๋˜์—ˆ๋‹ค. ํ•ด๊ฒฐ : ex) ์‹คํŒจ SELECT * FROM [ํ…Œ์ด๋ธ”๋ช…] A LEFT JOIN [ํ…Œ์ด๋ธ”๋ช…] B ON B.[์กฐ์ธ์ปฌ๋Ÿผ] = A.[์กฐ์ธ์ปฌ๋Ÿผ] WHERE [์กฐ๊ฑด์ปฌ๋Ÿผ] = [์กฐ๊ฑด๊ฐ’..

    [ORACLE] ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ” ์กฐ์ธ ํ›„ ์—…๋ฐ์ดํŠธ

    ๊ฐœ์š” : ํŠน์ • ํ…Œ์ด๋ธ”์—์„œ ํŠน์ • ๋ฉ”๋‰ด์— ์†Œ์†๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด์•ผํ•˜๋Š” ์ผ์ด ์ƒ๊ฒผ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ ํ…Œ์ด๋ธ”์—๋Š” ์กฐ๊ฑด์ ˆ์„ ์ค„ ์ˆ˜ ์žˆ์„ ๋งŒํ•œ ์ปฌ๋Ÿผ์ด ์กด์žฌํ•˜์ง€ ์•Š์•˜๊ณ  ๊ธฐ์กด์—๋„ ๋‹ค๋ฅธํ…Œ์ด๋ธ”๊ณผ ์กฐ์ธํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ํ…Œ์ด๋ธ”์ด์—ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์—…๋ฐ์ดํŠธ๋ฌธ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋˜ํ•œ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”๊ณผ์˜ ์กฐ์ธ์„ ํ†ตํ•ด ์กฐ๊ฑด์„ ์ฃผ์–ด ์ˆ˜ํ–‰ํ•ด์•ผํ•œ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด ํ•ด๋ณด์•˜์ง€๋งŒ ๊ธฐ์กด UPDATE๋ฌธ์œผ๋กœ๋Š” ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜๋‹ค. ๊ธฐ์กด ์‹คํ–‰๋ฌธ : --์„ค๋ช… UPDATE ( SELECT * FROM [๋ฉ”๋‰ด์ฝ”๋“œ๋ฅผ ํฌํ•จํ•œ ํŒŒ์ผ๊ด€๋ จ ํ…Œ์ด๋ธ”] R, [ํŒŒ์ผ๊ด€๋ จ ์ •๋ณด๋ฅผ ๋‹ด์€ ํ…Œ์ด๋ธ”] F WHERE r.orikey = f.file_idx -- [์กฐ์ธ์กฐ๊ฑด] AND r.[๋ฉ”๋‰ด๊ตฌ๋ถ„์ปฌ๋Ÿผ] = '813' -- ๋ฉ”๋‰ด๊ตฌ๋ถ„ AND f.[ํŒŒ์ผํƒ€์ž…๊ตฌ๋ถ„์ปฌ๋Ÿผ] = '364' -- ํŒŒ์ผํƒ€์ž…๊ตฌ๋ถ„ ) ..

    IN ๋ฌธ์„ ํ™œ์šฉํ•œ LIKE ์‚ฌ์šฉ

    ๊ฐœ์š” : ํ…Œ์ด๋ธ”์—์„œ 'LIKE'์™€ 'IN'์„ ์‚ฌ์šฉํ•ด ๋‹ค์ค‘ ์กฐ๊ฑด์„ ๊ฑธ์–ด ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋ ค๊ณ  ํ•˜์˜€์œผ๋‚˜ ์ฟผ๋ฆฌ๋ฌธ์ด ์‹คํ–‰๋˜์ง€ ์•Š์Œ 'LIKE'๋งŒ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฟผ๋ฆฌ๋ฌธ์„ ์ž‘์„ฑํ•˜์ž๋‹ˆ ์กฐ๊ฑด๋ณ„๋กœ ๊ณ„์† ์ž‘์„ฑํ•ด์•ผํ•ด์„œ ์“ธ๋ฐ์—†์ด ๊ธธ์–ด์ง€๊ธฐ๋•Œ๋ฌธ์— 'IN'์„ ๊ฐ™์ด ์ด์šฉํ•  ์ˆ˜ ์—†์„๊นŒ ์ƒ๊ฐํ–ˆ๋‹ค. ์•„๋ž˜๋Š” ์‹คํ–‰๋˜์ง€ ์•Š์€ ์ฟผ๋ฆฌ๋ฌธ์˜ ์˜ˆ์‹œ์ด๋‹ค. EX) SELECT * FROM [ํ…Œ์ด๋ธ”๋ช…] WHERE [์ปฌ๋Ÿผ๋ช…] LIKE IN ('[%์กฐ๊ฑด%]', '[%์กฐ๊ฑด%]', '[%์กฐ๊ฑด%]'); ํ•ด๊ฒฐ๋ฐฉ๋ฒ• : 'REGEXP_LIKE'๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š”๋ฐ ์ •๊ทœ์‹์„ ์‚ฌ์šฉํ•˜๋Š”? 'LIKE' ์กฐ๊ฑด์ ˆ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ ๊ฒƒ๊ฐ™๋‹ค. ์•„๋ž˜๋Š” ์‹คํ–‰๋˜๋Š” ์ฟผ๋ฆฌ๋ฌธ์ด๋‹ค. SELECT * FROM [ํ…Œ์ด๋ธ”๋ช…] WHERE REGEXP_LIKE( [ํ•„๋“œ๋ช…], '[์กฐ๊ฑด] | [์กฐ๊ฑด] | [์กฐ๊ฑด]' )..

    LONGํƒ€์ž… ์ปฌ๋Ÿผ์„ ํฌํ•จํ•œ ํ…Œ์ด๋ธ” ๋ณต์‚ฌ(๋ฐฑ์—…ํ…Œ์ด๋ธ”์ƒ์„ฑ)

    ๊ธฐ์กด ํ…Œ์ด๋ธ” ๋ณต์‚ฌ๋Š” CREATE TABLE [์ƒˆ๋กœ์ƒ์„ฑ๋ ํ…Œ์ด๋ธ”๋ช…] AS SELECT * FROM [๊ธฐ์กดํ…Œ์ด๋ธ”๋ช…] WHERE 1=1; ๋กœ๋„ ๊ฐ€๋Šฅํ–ˆ์ง€๋งŒ ๊ธฐ์กดํ…Œ์ด๋ธ”์ด LONGํƒ€์ž… ์ปฌ๋Ÿผ์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ๋ณต์‚ฌํ•  ์ˆ˜ ์—†๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ์—๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์ง€๋งŒ ๋‚˜๋Š” SQLPLUS๋ฅผ ํ™œ์šฉํ•œ COPY๋ฌธ์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. 1. ๋จผ์ € ํ„ฐ๋ฏธ๋„ ํ™˜๊ฒฝ์—์„œ sqlplus์— ์ ‘์†ํ•œ๋‹ค. (์œˆ๋„์šฐ ํ™˜๊ฒฝ์˜ ๊ฒฝ์šฐ์ž„) ๋”๋ณด๊ธฐ C:\[ํ•ด๋‹น๊ฒฝ๋กœ]>sqlplus UserId/UserPw 2. ์ ‘์†๋๋‹ค๋Š” ์•ˆ๋‚ด ํ™•์ธ 3. COPY FROM UserId/UserPw@sid TO UserId/UserPw@sid CREATE [๋ฐฑ์—…ํ…Œ์ด๋ธ”๋ช…] USING SELECT * FROM [๊ธฐ์กดํ…Œ์ด๋ธ”๋ช…] 4. ์ฟผ๋ฆฌ๋ฌธ ์‹คํ–‰ 5. ์™„๋ฃŒ ์•ˆ๋‚ด ํ™•์ธ 6. sqlplus ..

    [ORACLE DB] VARCHAR2ํƒ€์ž… CLOBํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝ

    โ€ป ๋ณ€๊ฒฝํ•  ์ปฌ๋Ÿผ์ด ํฌํ•จ๋œ ํ…Œ์ด๋ธ” ์ž์ฒด๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• 1. ๋ฐฑ์—…ํ…Œ์ด๋ธ” ์ƒ์„ฑ ํ›„ ๊ธฐ์กดํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ์˜ฎ๊ธฐ๊ธฐ CREATE TABLE [๋ฐฑ์—…ํ…Œ์ด๋ธ”๋ช…] AS SELECT * FROM [๊ธฐ์กดํ…Œ์ด๋ธ”๋ช…]; 2. ๊ธฐ์กดํ…Œ์ด๋ธ” ์‚ญ์ œ DROP TABLE [๊ธฐ์กดํ…Œ์ด๋ธ”๋ช…]; 3. ํ…Œ์ด๋ธ” ์žฌ์ •์˜ ํ›„ ์ƒ์„ฑ CREATE TABLE [๊ธฐ์กดํ…Œ์ด๋ธ”๋ช…] ( [์ปฌ๋Ÿผ๋ช…] [๋ฐ์ดํ„ฐํƒ€์ž…] , [์ปฌ๋Ÿผ๋ช…] [๋ฐ์ดํ„ฐํƒ€์ž…] , [์ปฌ๋Ÿผ๋ช…] [๋ฐ์ดํ„ฐํƒ€์ž…] , [์ปฌ๋Ÿผ๋ช…] [๋ฐ์ดํ„ฐํƒ€์ž…] ); 4. ์žฌ์ •์˜ํ•œ ํ…Œ์ด๋ธ”์— ๋ฐฑ์—…ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ์‚ฝ์ž… INSERT INTO [๊ธฐ์กดํ…Œ์ด๋ธ”๋ช…] SELECT * FROM [๋ฐฑ์—…ํ…Œ์ด๋ธ”๋ช…]; โ€ป ๋ณ€๊ฒฝํ•  ์ปฌ๋Ÿผ ์ž์ฒด๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• 1. ๋ณ€๊ฒฝํ•˜๋ ค๋Š” ํ…Œ์ด๋ธ”์— ์ž„์‹œ CLOB์ปฌ๋Ÿผ ์ถ”๊ฐ€ ALTER TABLE [ํ…Œ์ด๋ธ”๋ช…] ADD ( [์ปฌ๋Ÿผ๋ช…] [CL..