본문 바로가기
IT/DB

[ORACLE] ORA-01732 : 뷰에 대한 조작이 부적합합니다.

by 스터딩아재 2021. 12. 22.
반응형

 

 

ORA-01732의 경우 뷰를 INSERT, UPDATE, DELETE 하는 경우 발생할 수 있습니다.

 

 

예시 SQL

 

UPDATE V_USER_INFO
SET    PWD = '1111'
WHERE  USER_ID = 'A'

 

아마 해당 에러가 발생하신 분들은 이와 같은 뷰에 대해 직접 수정을 하려고 하고 있을 것입니다.

 

일반적인 뷰의 경우에는 문제없이 수행되지만 뷰가 UNION, GROUP BY 등으로 선언된 경우는 ORA-01732가 발생합니다.

 

 

 

해결 방법

 

이런 경우 뷰를 직접 수정하면 안 되고 뷰 내부의 테이블에 직접 수정해야 합니다.

 

Description을 통해 뷰를 열어봅시다. (오렌지의 경우 F4)

 

CREATE VIEW V_USER_INFO ( USER_ID, PWD )
AS 

SELECT  USER_ID
      , PWD
FROM    USER_TABLE

UNION

SELECT  USER_ID
      , PWD
FROM    USER_2

 

위 처럼 USER_TABLE과 USER_2를 합쳐서 VIEW를 만들고 있습니다. 

 

원하는 정보가 조회되는 테이블을 찾아 UPDATE 해주면 됩니다.

 

 

 

그리드형

댓글