오라클 테이블 생성 스크립트 실행시 에러 0 2 4,306

by sjydevil [PL/SQL] create [2015.01.13 11:44:31]


아래의 스크립트를 한번에 실행하면 에러가 발생합니다.

drop 부분과 create 부분을 따로 실행하면 에러가 안나구요.

ms sql 에서 오라클로 오는게 어렵네요.

에러 메세지

오류 보고:
ORA-06550: line 12, column 1:
PLS-00103: Encountered the symbol "CREATE"
06550. 00000 -  "line %s, column %s:\n%s"
*Cause:    Usually a PL/SQL compilation error.
*Action:
 

 

--
BEGIN
   EXECUTE IMMEDIATE 'DROP TABLE AP_LOG_MSMQ';
EXCEPTION
   WHEN OTHERS THEN
      IF SQLCODE != -942 THEN
         RAISE;
      END IF;
END;


--
CREATE TABLE AP_LOG_MSMQ
(
  /* PK_NO          NUMBER                         NOT NULL     DEFAULT 0  */
  PROG_NAME      VARCHAR2(30)                   NULL,
  FROM_ID        VARCHAR2(10)                   NULL,
  TO_ID          VARCHAR2(10)                   NULL,
  ACTION_CODE    VARCHAR2(10)                   NULL,
  ACTION_DATA    VARCHAR2(100)                  NULL,            
  UQID           VARCHAR2(100)                  NULL,
  MSG_MODE       VARCHAR2(1)                    NULL,      /* R:receiver, S:sender */
  IP_ADDR             VARCHAR2(20)                   NULL,      /* R:receiver, S:sender */
  INSERT_DT      DATE                           DEFAULT sysdate,
  UPDATE_DT      DATE                           DEFAULT sysdate
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
NOMONITORING;

by 타락천사 [2015.01.13 12:47:52]

아래처럼 하면 잘되는데요..

BEGIN
   EXECUTE IMMEDIATE 'DROP TABLE AP_LOG_MSMQ';
   EXECUTE IMMEDIATE '
   CREATE TABLE AP_LOG_MSMQ
(
  /* PK_NO          NUMBER                         NOT NULL     DEFAULT 0  */
  PROG_NAME      VARCHAR2(30)                   NULL,
  FROM_ID        VARCHAR2(10)                   NULL,
  TO_ID          VARCHAR2(10)                   NULL,
  ACTION_CODE    VARCHAR2(10)                   NULL,
  ACTION_DATA    VARCHAR2(100)                  NULL,            
  UQID           VARCHAR2(100)                  NULL,
  MSG_MODE       VARCHAR2(1)                    NULL,      /* R:receiver, S:sender */
  IP_ADDR             VARCHAR2(20)                   NULL,      /* R:receiver, S:sender */
  INSERT_DT      DATE                           DEFAULT sysdate,
  UPDATE_DT      DATE                           DEFAULT sysdate
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
NOMONITORING';
EXCEPTION
   WHEN OTHERS THEN
      IF SQLCODE != -942 THEN
         RAISE;
      END IF;
END;


 


by 마농 [2015.01.13 13:03:36]

END;

/   -- PL/SQL의 종료구분이 없어서 그래요.

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