Lang/โ˜• Java

โ˜• Java * [Mybatis] Update ๋ฌธ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณตํ•˜๊ณ  ์‹ถ๋‹ค..!! ( feat. Oracle )

___l_i_ * 2024. 4. 18. 13:16

 

Insert ๋ฌธ์€ ๋ฉ€ํ‹ฐ๋กœ ๊ฐ€๋Šฅํ•˜๋ฉด์„œ ์™œ!! Update ๋Š” ์•ˆํ•ด์ฃผ๋Š”๊ฐ€!!

 

์‚ฌ์‹ค ์ง€๊ธˆ๊นŒ์ง€ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์กฐ๊ฑด์— ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๊ฐ’์„ ๋„ฃ์–ด์„œ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์—†์—ˆ๋‹ค.

์˜๋„์น˜ ์•Š๊ฒŒ ๊ฐ๊ฐ ๋‹ค๋ฅธ ์กฐ๊ฑด์˜ ๊ฐ’์„ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ฒผ์œผ๋‹ˆ,,

๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž.

 

foreach ๋กœ ๋ฐ˜๋ณต์„ ํ•˜๋ฉด ๋˜๋Š”๋ฐ ์กฐ๊ฑด๋„ ๋งคํ•‘ํ•ด์ฃผ๋ฉด ๋˜๋Š”๋ฐ,, ๊ทธ๋ƒฅ ๊ฐ์‹ธ์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ์˜ค๋ฅ˜๋ฅผ ๋งŒ๋‚  ์ˆ˜ ์žˆ๋‹ค.

 

ORA-01795: maximum number of expressions in a list is 1000

์—์ž‰..์ฏช!

 

์‹ค์ œ ์ถœ๋ ฅ๋˜๋Š” query ๋ฌธ๋„ ์ด๋ ‡๊ฒŒ ์‹คํ–‰ํ–ˆ๋‹ค๊ฐ„ ์•„๋ฌด๊ฒƒ๋„ ์•ˆ๋˜๊ฒ ๊ตฐ! ํ•˜๋Š” ์—ฐ๊ฒฐ๋œ ์ฟผ๋ฆฌ๋ฅผ ์ถœ๋ ฅํ•ด์ค€๋‹ค.

๋ฉ€ํ‹ฐ ์ฟผ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ์˜ต์…˜(?) ์ด ๋ณ„๋„๋กœ ์กด์žฌํ•˜๊ณ  ์…‹ํŒ…ํ•˜๋ฉด ๋˜์ง€๋งŒ ๋‚˜์˜ ๊ฒฝ์šฐ๋Š”,,

 

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹œ์— ์ตœ์ดˆ 1๋ฒˆ ์…‹ํŒ…์„ ์œ„ํ•œ ์‹คํ–‰์ด๋ผ ๊ตณ์ด ์„ค์ • ๋ณ€๊ฒฝ๊นŒ์ง€๋Š” ํ•˜๊ธฐ ์‹ซ์–ด์„œ foreach ์˜ ์กฐ๊ฑด์„ ์‚ฌ์šฉํ–ˆ๋‹ค.

 

Oracle ์€ PL/SQL ๊ตฌ๋ฌธ์ธ DECLARE DEBIN ...; END; ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฟผ๋ฆฌ๋ฌธ์„ ์ƒ์„ฑํ•œ๋‹ค.

<foreach item="rowKey" collection="rowKeys" separator=";" open="DECLARE BEGIN" close="; END;">
    UPDATE_์ฟผ๋ฆฌ_์ž‘์„ฑ 
</foreach>

 

์–ด์ฐจํ”ผ separtor ๋กœ ๊ตฌ๋ถ„๋˜๋ฉด update ์ฟผ๋ฆฌ๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ ๋ถ™์—ฌ์ง€๋Š” ๊ฑฐ๋‹ˆ๊นŒ ์ƒ๊ด€์—†์ง€ ์•Š์„๊นŒ? ์ƒ๊ฐํ–ˆ์ง€๋งŒ

์˜ค๋ผํด์€ ๋งŒ๋งŒํ•˜์ง€ ์•Š์•˜๋‹ค.. ORA-00911: invalid character

... ๐Ÿ”ฅ PL/SQL ๋ฌธ์„ ๋ถ™์—ฌ์ฃผ์ž.. ๐Ÿณ๏ธ

 

 

๊ทธ๋ ‡๋‹ค๋ฉด,, MariaDB ๋Š”..?
๋”ฐ๋กœ ์‹ค์Šตํ•  ํ•„์š”๊ฐ€ ์—†์–ด์„œ GPT๐Ÿค– ์—๊ฒŒ ๋ฌผ์–ด๋ดค๋‹ค.

<foreach item="rowKey" collection="rowKeys" separator=";">
    UPDATE_์ฟผ๋ฆฌ_์ž‘์„ฑ
</foreach>

 

์‹คํ–‰ ๊ฒฐ๊ณผ๋Š”.. ์–ธ์  ๊ฐ€ ํ•„์š”ํ•˜๊ฒŒ ๋  ๋‚˜ ๋˜๋Š” ์ด ๊ธ€์„ ๋ณด๊ณ  ์‹œ๋„ํ•ด ๋ณธ ๋‹น์‹ ์—๊ฒŒ ๋ถ€ํƒ๋“œ๋ฆฐ๋‹ค ๐Ÿ˜‰!

 

 

 


Thanks for ๐Ÿ™ˆ