프로시저 작성 후 실행이 안되요..ㅠㅠ 0 1 1,491

by 하니 [PL/SQL] 프로시저 [2014.08.06 14:34:12]


CREATE OR REPLACE PROCEDURE test_insert

IS


BEGIN
  INSERT INTO testdata
               (seqno, testdate, testtime, test_m, test1id, test1name, testn1,
                testn2, testn3, test2name, teste1, teste2, test3, test_msg,
                url, test2date, test2time, test_r, kind, errcode)
      SELECT testdata_seq.NEXTVAL, TO_CHAR (SYSDATE, 'yyyymmdd'),
             TO_CHAR (SYSDATE, 'hh24mmss'), '0', 'test', '테스트',
             '0001', '0002', '0003', test_person, '000', '000', '1234',
             test_title || ' ' || total_amt || '테스트 입니다..', '',
             '', '', '0', 'K', '0'
        FROM test_order
       WHERE order_id IN (
                SELECT DISTINCT orderno
                           FROM test_order_iteml
                          WHERE test1date =
                                                TO_CHAR (SYSDATE, 'yyyymmdd')
                            AND test2date IS NULL)
         AND comm_cd = '10005';
   COMMIT;
END test_insert;

컬럼이나 테이블 명은 약간 바꿔놨습니다. 그리고 'comm_cd='10005''는 고정값이라 변수처리 안했습니다.

이렇게 작성한 후 토드에서 컴파일 까지 하고 에디터 창에서 exec test_insert; 했더니

ora-00900 이 뜹니다.

잘못된 부분이 있으면 알려주세요.

그리고 잡 스케쥴러로 매일 돌릴 예정입니다.

by 마농 [2014.08.06 15:39:26]

EXEC 는 PL/SQL 구문이 아니라 SQLPLUS 구문으로 알고 있습니다.
토드 버전에 따라 자동으로 실행 가능하게 변환해주는 경우도 있지만, 아닐 수도 있습니다.
PL/SQL 구문으로 실행하려면?
BEGIN    test_insert;    END;

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