おうじ様の開発メモ

おうじ様の開発メモ

おうじ様がシステム開発過程において習得した技術に関する開発メモ

Amebaでブログを始めよう!
Seasar2で外部SQLから検索を実行した場合に、「[ESSR0072]SQLで例外」となる原因についてのおうじ様の開発メモ

【事象】
外部SQLから検索を実行したとき、以下のエラー

[ESSR0072]SQLで例外(SQL=[select * from ( select temp_.*, rownum rownumber_ from ( SELECT
 (中略)...
) temp_ ) where rownumber_ <= 3], Message=[918], ErrorCode=42000, SQLState={3})が発生しました

【原因】
SQLでテーブルを結合していて、テーブル間でフィールド名が重複する場合、この現象となる。(Seasarの問題ではないのだが)

SELECT
 T1.SLIP_DTL_ID
 ,T1.SLIP_ID
 ,T1.SLIP_DTL_NO
 ,T1.PROGRESS
 ,T2.SUBJECT
 ,T2.AUTHOR_CODE
 ,T2.PROGRESS
 ,T2.COMPANY_CODE
FROM
 T_SLIP_DTL T1
INNER JOIN T_SLIP T2 ON (
   T2.SLIP_ID = T1.SLIP_ID
 AND T2.DELETE_FLG = '0'
)
WHERE
T2.COMPANY_CODE = ?