programing

Oracle Alter 명령을 사용하여 기존 Column 오류 링의 이름을 변경합니다.

skycolor 2023. 10. 29. 19:09
반응형

Oracle Alter 명령을 사용하여 기존 Column 오류 링의 이름을 변경합니다.

alter table tablename rename column zl_divn_nbr to div_loc_nbr;

위 문을 실행하는 중 오류가 발생했습니다.제발 도와주세요.

SQL Error: ORA-54032: column to be renamed is used in a virtual column expression
54032. 0000 -  "column to be renamed is used in a virtual column expression"
*Cause:    Attempted to rename a column that was used in a virtual column
           expression.
*Action:   Drop the virtual column first or change the virtual column
           expression to eliminate dependency on the column to be renamed

오류 메시지에 언급된 테이블 이름을 사용하여 데이터베이스에서 다음 SQL 쿼리를 실행합니다.예를 들어, 이 기사에 나와 있는 오류 메시지에서 테이블 이름은 'tablename'입니다.테이블 이름은 오류 메시지에서 소문자로 표시되지만 DB에서는 대문자일 수 있습니다.이 쿼리는 대소문자를 구분하므로, 결과를 받지 못할 경우, 테이블 이름이 데이터베이스 내부의 대문자인지 확인합니다.

COLUMN_NAME, DATA_Default, HIDDEN_COLUMN FROM USER_를 선택합니다.TAB_COLS WHERE TABLE_NAME = 'tablename';

계속하기 전에 Bitbucket Server 프로세스가 실행되고 있지 않은지 확인합니다.확장 통계가 사용 가능으로 설정된 경우, 데이터베이스 관리자에게 연락하여 확장 통계 메타데이터를 테이블에서 삭제하고 업그레이드를 진행합니다.업그레이드 후에 확장 통계를 다시 활성화하려면 다음 업그레이드를 위해 이 프로세스를 다시 실행해야 할 수도 있습니다. 그렇지 않으면 이 문제가 다시 발생할 위험이 있습니다.

Extended Statistics에서 생성한 열을 제거하려면 빌드 내 저장 프로시저를 사용해야 합니다.

DBMS_STATS.DROP_EXTEND_STATS().

이 저장 프로시저의 사용법은 ORA-54033 및 Hidden Virtual Column Mystery에서 자세히 다루며 다음과 유사합니다.

EXEC DBMS_STATS.DROP_EXTENDED_STATS(ownname=>'<YOUR_DB_USERNAME>', tabname=>'tablename', extension=>'("PR_ROLE", "USER_ID", "PR_APPROVED")')

참조 데이터베이스 업그레이드 오류: 이름을 바꿀

감사해요.

아마 이런 표가 있을 겁니다.

CREATE TABLE tablename(
  id               NUMBER,
  zl_divn_nbr      NUMBER,
  zl_divn_percent  NUMBER GENERATED ALWAYS AS (ROUND(zl_divn_nbr/100,2)) VIRTUAL
);

어디에zl_divn_nbr열은 virtual()에 대한 계산에 사용됩니다.zl_divn_percent)란.

이름 바꾸기zl_divn_nbr, 이 열에 참조된 모든 가상 열을 제거해야 하며 나중에 생성할 수도 있습니다.

가상 열을 정의하는 구문은 다음과 같습니다.

column_name [datatype] [GENERATED ALWAYS] AS (expression) [VIRTUAL]

버전 11 R1부터 우리는 이 속성을 가지고 있습니다.

열 이름을 다음으로 변경합니다.

가상 또는 '그룹 확장 열'있는 테이블의 경우 위 문은 Oracle 12cR2 이전에 오류를 반환합니다.Oracle 12cR2 이상 버전의 경우 그룹 확장 측면에서 'lenaming column' 명령이 분리되어 있으므로 위 문장이 잘 실행됩니다.

언급URL : https://stackoverflow.com/questions/50280756/oracle-alter-command-to-rename-existing-column-errorring

반응형