๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋…ธ๋ ฅ์„ ์ด๊ธฐ๋Š” ์žฌ๋Šฅ์€ ์—†๊ณ 
๋…ธ๋ ฅ์„ ์™ธ๋ฉดํ•˜๋Š” ๊ฒฐ๊ณผ๋„ ์—†๋‹ค.
- ์ด์ฐฝํ˜ธ 9๋‹จ

E R R O R/Java Error

[Java Error] Cause: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory, ORA-00923: FROM keyword not found where expected.

  Junesker   2022. 8. 4.
๋ฐ˜์‘ํ˜•

ORA-00923: FROM keyword not found where expected

ํ…Œ์ŠคํŠธ ํ”„๋กœ์ ํŠธ๋กœ ์‚ฌ์šฉํ•˜๋˜ ์„œ๋น„์Šค๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์˜ค๋žœ๋งŒ์— ํ”„๋กœ์ ํŠธ๋ฅผ ์—ด๊ณ  Mysql ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์‚ฌ์šฉํ•˜๋˜ ์„ค์ •๋“ค์„ Oracle ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์ •์œผ๋กœ ๋ณ€๊ฒฝ ํ›„, ์„œ๋ฒ„๋ฅผ ๊ฐ€๋™ํ•˜๊ณ  ๋กœ๊ทธ์ธ์„ ์ง„ํ–‰ํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ORA-00923: From keyword not found where expected. ๋ผ๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. From์ ˆ๊ณผ ๊ด€๋ จ์ด ์žˆ๋Š”๊ฑฐ ๊ฐ™์•„ DB ์ฟผ๋ฆฌ๊ฐ€ ์žˆ๋Š” Mapper์ชฝ์œผ๋กœ ๊ฐ€ ๋กœ๊ทธ์ธ์„ ๊ด€์žฅํ•˜๋Š” Mapper xml์„ ๋“ค์—ฌ๋‹ค๋ณด์•˜๋‹ค. ์ฟผ๋ฆฌ์— Mysql์—์„œ ์‚ฌ์šฉ์ค‘์ด๋˜ ๊ตฌ๋ฌธ์ด ์žˆ์–ด ์ˆ˜์ •ํ•˜๊ณ , ์˜คํƒ€ ๋˜ํ•œ ํ™•์ธํ–ˆ์ง€๋งŒ ์˜คํƒ€๋Š” ์—†์—ˆ๋‹ค. ๋‹ค์‹œ ์„œ๋ฒ„๋ฅผ ์žฌ๊ฐ€๋™ํ•˜๊ณ  ๋กœ๊ทธ์ธ์„ ์ง„ํ–‰ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฟœ์–ด์ ธ๋‚˜์™”๋‹ค. ์„ค์ •์ด ์ž˜๋ชป๋œ๊ฑด๊ฐ€? ์–ด๋””์„œ๋ถ€ํ„ฐ ์ž˜๋ชป๋œ๊ฑด์ง€ ํ•˜๋‚˜ํ•˜๋‚˜์”ฉ ์ฐพ์•„๋‚˜๊ฐ”๋‹ค. ํ•œ์ฐธ์„ ํ—ค๋งค๊ณ  ์‹œ๋„ํ•˜๋‹ค๊ฐ€ ๋งˆ์ง€๋ง‰์— ๋„์›€์˜ ์†๊ธธ์„ ๋นŒ๋ ค ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋ฌธ์ œ๋Š” ์ด๋žฌ๋‹ค. DataSource bean์„ ๋“ฑ๋กํ•˜๋Š” ๊ณผ์ •์—์„œ ์†์„ฑ์œผ๋กœ ValidationQuery๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ถ€๋ถ„์ด ์žˆ๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ ์ „์— Mysql ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์„ค์ •ํ•ด๋‘์—ˆ๋˜ ๊ฐ’์ด ๋ฌธ์ œ๊ฐ€ ๋๋‹ค.

 

 

 

 

 

์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ
datasource-context.xml์—์„œ ๋“ฑ๋กํ•œ DataSource bean๋“ฑ๋ก์‹œ์— ์„ค์ •ํ•œ
ValidationQuery์˜ ์„ค์ •๊ฐ’์ด ์ž˜๋ชป๋˜์–ด ๋ฐœ์ƒํ•˜์—ฌ ์„ค์ •๊ฐ’์„ ๋ณ€๊ฒฝ

 

 

 

 

 

dataSource bean๋“ฑ๋ก์‹œ์— ์„ค์ •ํ•œ validationQuery ์„ค์ •๊ฐ’์„ ๋ณ€๊ฒฝ

validationQuery์„ค์ •๋ถ€๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜, ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค Oracle ์„ค์ •์—์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅ ํ•œ "select 1 from dual"์˜ ๊ฐ’์œผ๋กœ ๋Œ€์ฒดํ•˜์—ฌ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Mysql๊ฐ™์€ ๊ฒฝ์šฐ๋Š” FROM์ ˆ ์ƒ๋žต์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, Oracle์—์„œ๋Š” ๊ทธ๋ ‡์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— validationQuery์— ์„ค์ •๋˜์–ด ์žˆ๋Š” select 1 ๊ฐ’์ด From์ ˆ ๋ˆ„๋ฝ์œผ๋กœ ์ฒดํ‚นํ•˜๋Š” ๋ถ€๋ถ„์ด ๋˜์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ Mapper์— ์„ค์ •๋˜์–ด ์žˆ๋Š” ์ฟผ๋ฆฌ xml๋“ค์˜ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ ์—๋Ÿฌ๋ฅผ ๋ฟœ์—ˆ๋‹ค.

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€