ORA-00936: 누락된 표현식 0 6 38,854

by 정종고 [Oracle 에러코드] [2008.10.27 17:26:14]


INSERT INTO T_TR1MIN (SP_NO, TR_DATE, NV_TAG_ID, TR_VALUE)
VALUES
(
 SELECT A.SP_NO, A.TR_DATE, A.NV_TAG_ID, AVG(DECODE(A.TR_VALUE, 0, NULL, TR_VALUE)) AS TR_VALUE   
 FROM T_TR10SE A  
 WHERE A.SP_NO = 1
 AND A.TR_DATE >= :TR_DATE-1/1440        
 AND A.TR_DATE < :TR_DATE
 AND A.NV_TAG_ID < 5000   
 GROUP BY A.SP_NO, A.TR_DATE, A.NV_TAG_ID
 )

구문 실행시 ORA-00936: 누락된 표현식이라는 에러 메시지가 나옵니다.

이 구문이 정상적인가요??

:TR_DATE = '20081027 16:10:14' 값을 넣었는데요!

빠른 답변 부탁드립니다.

by 현 [2008.10.27 17:49:14]
TR_DATE 가 날짜 타입인가요?
그렇다면 to_DATE( :TR_DATE ,'YYYYMMDD HH24MISS') 로 치환해 주세요...

by 마농 [2008.10.27 17:58:48]
1. insert into 테이블명(컬럼리스트) values(입력값리스트);
2. insert into 테이블명(컬럼리스트) select 조회값리스트 from 테이블;
두가지 방식을 혼용하셨네요. 문법 오류입니다.

by 왕희복 [2008.10.28 09:35:35]
ㅎㅎ 자세히보니 마농님말이 맞네 ^^

by 정종고 [2008.10.28 11:15:37]
마농님! 제가 잘 이해가 안가서 그런데요?
어떻게 해야 하나요? Select구문을 따로 빼야 하나요?
자세히 설명 부탁드립니다.

by 마농 [2008.10.28 14:13:16]
기본 문법에 충실하세요.
제가 알려드린 두가지 방식중 두번째 방식으로 하시면 됩니다.

by 마농 [2008.10.28 17:09:42]
쉽게 말하자면 values 를 빼세요.
http://www.gurubee.net/lecture/1016
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입