EXECUTE IMMEDIATE 쿼리문 담기 기초문의 0 2 1,687

by orau [2012.04.18 06:20:44]



아래와 같이 하니 문법 오류와

SEND_LOG_SEQ.nextval 이것을 적용하기가 안되더라구요;;

SEND_LOG 이 테이블명을 년월타입으로 지정을 해줄필요가 있어서 만들어 보고 있는데 문법오류부터 막히네요;;
예) SEND_LOG_201204


S_LOG := '

 INSERT INTO SEND_LOG (
 NUM, 
 DATE,
 SNUM,
 ID,
 STAT, 
 RSTAT, 
 MTYPE, 
 RHP, 
 SHP, 
 RSDATE, 
 MODI, 
 CONTENT, 
 TELCO,
 ETC1, 
 EDATE)

VALUES (
 SEND_LOG_SEQ.nextval,
 TO_DATE('|| :NEW.SDATE ||', ''YYYY/MM/DD HH24:MI:SS''),
 '''',
 '|| :NEW.ID ||',
 ''0'',
 ''0'',
 ''0'',
 '|| :NEW.RHP ||',
 '|| :NEW.SHP ||',
 '''',
 '''',
 '|| :NEW.MSG ||',
 '''',
 '|| :NEW.CNT ||',
 ''''
)';

EXECUTE IMMEDIATE S_LOG;

by 마농 [2012.04.18 10:26:39]

원하시는 형태는 테이블명에서 send_log 다음에 일자부분이 있어야 할것 같구요.
TO_DATE('|| :NEW.SDATE ||', ''YYYY/MM/DD HH24:MI:SS'') 이부분은
TO_DATE('''|| :NEW.SDATE ||''', ''YYYY/MM/DD HH24:MI:SS'') 요렇게 하셔야 하구요.
나머지 부분도 따옴표 표시가 모호합니다.
입력값이 문자인지 숫자인지에 따라 따옴표 표시를 명확하게 해주셔야 합니다.


by orau [2012.04.18 19:38:50]

''' || :NEW.SDATE || '''

따옴표 3개가 중요했네요 ^^

콤마구분하여 잘 해결하였습니다.

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