아래의 스크립트를 한번에 실행하면 에러가 발생합니다.
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;
아래처럼 하면 잘되는데요..
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;