오라클 에서 TIBERO 전환을 하는도중
오류 발생 되네요 JDBC-8038:Expression is not in a GROUP BY caluse
오라클 에서는 Group By 선언하지 않도 실행되는데 TIBERO 는 오류 납니다
그래서 Group By 선언하면 LPAD 함수 제대로 동작하지 않습니다
EX) WITH PARAM
AS ( SELECT 'K' AS WORK,
'1' AS ATTR,
'2' AS ATTR1,
'3' AS ATTR2,
'4' AS ATTR3
FROM DUAL)
SELECT P.ATTR || P.ATTR1 || LPAD(P.ATTR2,3,'0' ) || LPAD(P.ATTR3,4,'0')
FROM A, PARAM P
WHERE A.WORK = P.WORK
AND A.ATTR = P.ATTR
AND A.ATTR1 = p.ATTR1
AND A.ATTR2 = p.ATTR2
AND A.ATRR3 = P.ATTR3
여기 까지 오라클 쿼리 인데 이렇게 오라클 내 실행하면 1 2 003 0004 대충 이런식으로 나옵니다
티베로 실행하면 SQLException : JDBC-8038:Expression is not in a GROUP BY caluse
P.ATTR || P.ATTR1 || LPAD(P.ATTR2,3,'0' ) || LPAD(P.ATTR3,4,'0')
그래서 Group by P.ATTR || P.ATTR1 || LPAD(P.ATTR2,3,'0' ) || LPAD(P.ATTR3,4,'0')
하단에 추가하면 LPAD 전혀 안되네요 실행은 되는데 결과값이 아무것도 나오지 않아요
오라클 LAPD , 티베로 LPAD 차이가 있나요 ??? 어떻게 수정해야 하나요 ??
티베로 오라클 문법 차이는 거의 없습니다.
GROUP BY 집계쿼리가 아닌데도 GROUP BY 관련 오류가 나는 것이 이상합니다.
파라미터와 조인하는 A 는 뭔가요?
혹시 A 가 뷰이고 뷰 안에서 GROUP BY 가 사용되고 있는 건 아닌지?
SELECT 절의 p. 을 a. 으로 바꾸어도 의미가 동일하니
SELECT 절의 p. 을 a. 으로 바꿔보는 건 어떨지?
결과값이 나오지 않는 것은 조건을 만족하는 자료가 없기 때문일 듯 합니다.