ALTER TABLE TEMP_TEST ADD (F VARCHAR(10));
-- 추가된 컬럼에는 기본값으로 널값이 들어갑
ALTER TABLE TEMP_TEST ADD (F VARCHAR(10) DEFAULT 'AA');
-- 추가된 컬럼에는 기본값으로 'AA'값이 들어감
ALTER TABLE TEMP_TEST ADD (G VARCHAR(10) NULL);
-- NULL이란 키워드를 사용하면 에러발생
ALTER TABLE TABLE_NAME ADD (COLUMN_NAME DATA_TYPE NOT NULL);
-- 해당 테이블에 로우가 없다면 정상실행
-- 해당 테이블에 로우가 있다면 에러발생
ALTER TABLE TEMP_TEST ADD (E VARCHAR(10) NOT NULL);
-- 현재 입력된 로우가 없다면 정상실행 로우가 있다면 에러발생
-- 위의 명령이 아래상황 일때는 실행됨
CREATE TABLE TEMP_TEST1
(A CHAR(2), B CHAR(2) NOT NULL);
COMMIT;
ALTER TABLE TEMP_TEST1 ADD C CHAR(2) NOT NULL;
SELECT * FROM TEMP_TEST1;
ALTER TABLE T_RA020 ADD RES_CD CHAR(2);
-- 기존에 로우가 있다면 추가한 컬럼값은 기본값이 널값으로 들어감
ALTER TABLE T_RA020 ADD POS_CD CHAR(2) DEFAILT '11';
-- 기존에 로우가 있다면 추가한 컬럼값은 기본값이 '11'값으로 들어감
컬럼 수정
ALTER TABLE T_KA031 MODIFY (FILE_NM_C CHAR(200) NOT NULL);
-- 기존에 있는 값중에 널값이 있다면 에러발생
-- 기존에 있는 값중에 널값이 없다면 정상실행
-- file_nm_c의 컬럼이 null인데 위의 명령어 쓰면 에러발생 아래의 명령어 써야 정상실행
ALTER TABLE t_bc016 MODIFY etc_remark CHAR(100);
ALTER TABLE T_KA031 MODIFY FILE_NM_C CHAR(200) NOT NULL;
-- 위의 명령과 같은 역할을 한다.
ALTER TABLE T_KA031 MODIFY FILE_NM_C CHAR(200) NULL;
-- 에러발생
ALTER TABLE t_ba060 MODIFY (dcsn_idea lvarchar(1000) NOT NULL);
-- 1000바이로 수정
char(300)이면 memo컬럼으로 변경됨
※ 인포믹스에서는 ALTER 명령후에 COMMIT 처리를 꼭 해야한다.
※ 인포믹스에서는 NOT NULL 제약조건을 안쓰면 기본적으로 NULL로 설정된다.
ALTER TABLE 명령시 "could not open database table" 에러출력 대처방법
테이블에 ALTER TABLE 명령시 "could not open database table" 에러가 발생하면 현재
테이블을 티맥스 서비스 파일에서 물고 있거나 제우스 웹서버에서 물고 있는중이므로
티맥스 서버와 제우스 웹서버를 내렸다가 실행후 다시 올리면 된다.
'DB > ORACLE' 카테고리의 다른 글
[Oracle] BYTE 단위로 일부만 추출 (단위로 자르기) (348) | 2022.05.12 |
---|---|
[Oracle] 16진수로 변환 (0) | 2022.04.27 |
[Oracle] 11g 빈테이블 export (0) | 2022.04.27 |
[Oracle] 테이블 권한 확인 및 오라클 비밀번호 강제 변경 (0) | 2022.04.20 |
[Oracle] DB 락 해제 방법 (0) | 2022.04.20 |