Oracle 은 표 의 필드 이름 을 대문자 로 대량 변환 하 는 방법(간단 한 저장 프로 세 스 이용)

머리말
오늘 데이터 필드 를 조회 할 때 문자 가 잘못 되 었 음 을 알려 줍 니 다.분명히 데이터베이스 시트 필드 에 존재 합 니 다.
조회 후 데이터베이스 테이블 필드 가 소문 자 일 때 조 회 는 필드 이름 을 소문 자로 하고 더 블 인덱스 를 추가 해 야 한 다 는 것 을 알 게 되 었 다.
표 명 은 같은 이치 입 니 다.제 가 있 는 표 명 은 대문자 이 므 로 당분간 고 칠 필요 가 없습니다.
대문자 로 된 필드 이름 을 대량으로 수정 하 는 저장 과정 을 찾 았 습 니 다.다음 과 같 습 니 다.
수정 할 사용자 에 게 로그 인하 면,
실행:

begin
for cl in (SELECT table_name,column_name from user_tab_columns WHERE column_name<>upper(column_name) and upper(column_name) not in('SIZE','CHECK')) loop
begin
execute immediate 'alter table '||cl.table_name||' rename column "'|| cl.column_name ||'" to '||upper(cl.column_name);
exception
when others then
dbms_output.put_line(cl.table_name||'.'||cl.column_name||'   ');
end;
end loop;
end;
이 사용자 의 모든 표 필드 이름 을 대문자 로 바 꾸 는 과정 을 완성 하 는 것 입 니 다.
대량 수정 표 이름 을 대문자 로 저장 하 는 과정 을 동봉 합 니 다.

-- oracle          (      )
begin
for c in (select table_name tn from user_tables where table_name <> upper(table_name)) loop
begin
execute immediate 'alter table "'||c.tn||'" rename to '||c.tn;
exception
when others then
dbms_output.put_line(c.tn||'   ');
end;
end loop;
end;
필드 형식 일괄 수정 추가(이 때 표 에 내용 없 음):

DECLARE
  CURSOR TEMP IS SELECT TABLE_NAME,COLUMN_NAME,DATA_LENGTH FROM USER_TAB_COLUMNS WHERE DATA_TYPE = 'NVARCHAR2' AND ROWNUM < 100;
  STR VARCHAR2(100) := '';
 BEGIN 
   FOR S IN TEMP LOOP
    STR := 'ALTER TABLE '||S.TABLE_NAME||' MODIFY('||S.COLUMN_NAME||' VARCHAR2(200))';
    DBMS_OUTPUT.PUT_LINE(STR);
   EXECUTE IMMEDIATE STR ;
   
   END LOOP;
 END;
오 라 클 이 표 의 필드 이름 을 대문자 로 대량 변환 하 는 방법 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 오 라 클 이 표 필드 이름 을 대문자 로 대량 변환 하 는 방법 에 대해 서 는 이전 글 을 검색 하거나 아래 의 관련 문장 을 계속 찾 아 보 세 요.앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기