Tibero DB LPAD 함수 사용이 안되나요 ?? 0 1 4,176

by MRBIGSEO [Tibero] TIBERO LPAD ORACLE [2022.06.28 00:34:49]


오라클 에서 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 차이가 있나요 ???   어떻게 수정해야 하나요 ??


                  

 

  

     

 

 

by 마농 [2022.06.28 10:02:01]

티베로 오라클 문법 차이는 거의 없습니다.
GROUP BY 집계쿼리가 아닌데도 GROUP BY 관련 오류가 나는 것이 이상합니다.
파라미터와 조인하는 A 는 뭔가요?
혹시 A 가 뷰이고 뷰 안에서 GROUP BY 가 사용되고 있는 건 아닌지?
SELECT 절의 p. 을 a. 으로 바꾸어도 의미가 동일하니
SELECT 절의 p. 을 a. 으로 바꿔보는 건 어떨지?
결과값이 나오지 않는 것은 조건을 만족하는 자료가 없기 때문일 듯 합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입