-- 모든 테이블에서 varchar 사이즈를 2배로 늘린다
-- varchar 는 4000 까지 이므로 현 사이즈를 가져와서 2000 보다 크면 4000까지로만 늘려준다.
prompt '======================================================='
prompt 'BE CAREFULL!!!!! THIS SCRIPT INCREASE VARCHAR SIZE * 2 '
prompt '======================================================='
declare
cursor emp is
select table_name, column_name , data_type, data_length
from all_tab_columns
where owner='&USER'
and data_type in ('CHAR', 'VARCHAR2' )
order by table_name;
atc all_tab_columns%ROWTYPE;
begin
for v_list in emp Loop
begin
if ( v_list.data_type = 'VARCHAR2' and v_list.data_length > 2000 ) then
v_list.data_length := 2000;
end if;
dbms_output.put_line ( v_list.table_name || '.' || v_list.column_name || ' modify ');
execute immediate 'alter table ' || v_list.table_name || ' modify ' || v_list.column_name || ' varchar2(' || v_list.data_length * 2 ||')';
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line ( SQLERRM );
END ;
end Loop;
end;
/
[출처] [본문스크랩] char -> varchar 그리고 사이즈 늘리기|작성자 겨우리
'DataBase > Sql' 카테고리의 다른 글
[Sql] Oracle - 간단한 저장프로시저 (0) | 2009.09.18 |
---|---|
[Sql] Oracle - 문자열 제어 (0) | 2009.08.28 |
[Sql] Oracle - Index생성 & 삭제 (0) | 2009.07.30 |
[Sql] Oracle - 날짜와 시간 포맷팅 (0) | 2009.06.01 |
[Sql] Oracle - 사용자 계정 컨트롤!! (0) | 2009.05.20 |