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 = ?