programing

오라클에서 테이블의 모든 열을 null에서 null로 설정하는 방법

closeapi 2023. 9. 23. 22:44
반응형

오라클에서 테이블의 모든 열을 null에서 null로 설정하는 방법

저는 40개의 기둥이 있는 테이블이 1개 있습니다.40개의 열 중 5개의 열만 NOT NULL이고 나머지 열은 NULL로 설정됩니다. 어떻게 하면 모든 NULL 열을 NOT NULL로 한 번에 설정하거나 TOAD에서 설정할 수 있을까요?NOT NULL로 수동으로 설정한 것 외에 가능성이 있습니까?

사용할 수 있습니다.Alter Table명령을 내리다다음 방법:

ALTER TABLE table_name
  MODIFY (column_1 column_type NOT NULL,
          column_2 column_type NOT NULL,
          ...
          column_n column_type);

이렇게 하면 모든 열의 변경사항이 한 번에 완료됩니다.또한 테이블에 이미 해당 열에 null 값이 있는 데이터가 있는 경우 기본값도 정의해야 합니다.다음은 샘플입니다.

ALTER TABLE table_name
  MODIFY (column_1 varchar2(100) DEFAULT 'some default' NOT NULL,
          column_2 varchar2(75) DEFAULT 'Some Value' NOT NULL);

대체 테이블이 작동합니다.

alter table [nameOfYourTable] modify [nameOfColumn] [dataType] not null

당신은 순환할 수 있습니다.USER_TAB_COLUMNS(ALL_TAB_COLUMNS와 함께owner = 'schema') 및ALTER사용.EXECUTE IMMEDIATE.

이를 실행하기 전에 먼저 기존 NULL이 포함된 테이블을 적절한 값으로 업데이트할 수 있습니다.

SET SERVEROUTPUT ON

BEGIN
    FOR q IN (
            SELECT 'ALTER TABLE ' || table_name || ' MODIFY ' || column_name || ' NOT  NULL' AS query
            FROM user_tab_columns
            WHERE table_name = 'YOURTABLE'
                AND NULLABLE = 'Y'
            ) 
   LOOP
     DBMS_OUTPUT.PUT_LINE(q.query);
     EXECUTE IMMEDIATE q.query;
   END LOOP;
END;

언급URL : https://stackoverflow.com/questions/49534043/how-to-set-all-column-from-null-to-not-null-in-table-in-oracle

반응형