이것은 정말 유용한 SQL 조각입니다.하지만 기본적으로 큰 일을 처리 한 데이터 입력 원숭이 중 하나이며 사본이 우리 시스템에 깊이 들어갔습니다. .열 이름에 대한 하위 쿼리를 사용하여 SQL 업데이트 수행
다른 값이 VAL3 인 경우 값이 VAL1에서 VAL2로 변경되어야하는 테이블이 상당히 많습니다. 문제는이 경우에 모든 테이블을 알 수 없으며 모든 테이블에 고유 한 열 이름이 있음을 의미하는 엄격한 열 명명 정책이 있다는 것입니다.
나는이 업데이트를 수행하려고 시도하는 다음과 같은 SQL을 썼다, 그러나 그것은 작동하지 않습니다UPDATE
(SELECT DISTINCT TABLE_NAME AS tbTableName
FROM ALL_TAB_COLUMNS
WHERE COLUMN_NAME LIKE '%MAJR%')
SET
(SELECT COLUMN_NAME AS tbColumnName
FROM tbTableName
WHERE COLUMN_NAME LIKE '%MAJR%') = 'VAL2'
WHERE
(SELECT COLUMN_NAME AS tbColumnNameWhere
FROM tbTableName
WHERE COLUMN_NAME LIKE '%PROGRAM%') = 'VAL3'
AND tbColumnName = 'VAL1';
을하지만 그래,이 오류와 함께 전복 :에는 table.column을 무효 user.table.column 또는 열 지정 01747. 00000 - "유효하지 않은 user.table.column, table.column 또는 열 지정"
아무 도움이됩니다.
동적 SQL을 사용해야 할 것입니다 – TrevDev