이런 기능이 있을까요? 테이블 컬럼 추가 0 4 2,162

by Kai [Oracle 기초] [2010.05.27 11:38:10]



A 테이블( 원래 테이블 )

컬럼
가 , 나, 다, 라, 마

B 테이블 ( 이력 테이블 )

컬럼
가, 나, 다

있을 경우

A테이블에는 있는데 B테이블에 없는 컬럼들을 추가해주는 sql문이 있을까요?


by 이재현 [2010.05.27 11:40:54]
프로시져로 만들면 될듯하데요

by 부쉬맨 [2010.05.27 11:44:37]
SELECT COUNT(*) INTO plCNT FROM A
WHERE EXITS ( SELECT 1 FROM B ) 문법은 사용하시는걸로 알고
이런식으로 해서 카운터 가 1이라고 존재하면 빠지고
없으면 밑에다가
IF plCNT <> 0 THEN
INSERT 문
해서 재현님말처럼 프로시저로 생성하면될꺼같습니다.
이건 A가 MASTER성 테이블이고 B가 이력성테이블이면 조인할수있기에
가능하겠죠.

by Kai [2010.05.27 12:00:28]
데이터가 아닌 alter table......이렇게 실제 컬럼을 추가하고 싶어요~

by Rapadon [2010.05.28 14:57:38]
1. select * from user_tab_columns 여기에는 각 테이블의 모든 정보가
들어 있습니다. 컬럼명, 등록순서, 형식, 사이즈 등등 대상테이블을 조회합니다.
2. A를 루프하면서 B와 비교한다. 없는 컬럼일때는 Alter시켜주면 됩니다.
예)execute immediate 'alter table A add 라컬럼 데이터형식(사이즈) Null여부 Default';

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