Oracle
db에 많은 테이블이 있습니다.다른 테이블에서 이름별로 열을 업데이트하는 방법
나는 (dep_year or main_year)
같은 필드를 포함하는 모든 테이블을 얻을 2016
값 대신 절차에 그런 일을 수행하는 방법에 2014
로를 업데이트합니다.
Oracle
db에 많은 테이블이 있습니다.다른 테이블에서 이름별로 열을 업데이트하는 방법
나는 (dep_year or main_year)
같은 필드를 포함하는 모든 테이블을 얻을 2016
값 대신 절차에 그런 일을 수행하는 방법에 2014
로를 업데이트합니다.
당신은 당신의 update
다음 execute immediate
update
있음을 구축, all_tab_columns
을 조회 할 수 있습니다.
begin
for rc in (select 'update '||table_name || ' set '||column_name||' = 2016 where '||column_name||' = 2014' as stmt from all_tab_columns where column_name in ('DEP_YEAR', 'MAIN_YEAR'))
loop
execute immediate (rc.stmt);
end loop;
commit;
end;
, 당신은 모든 테이블을 포함 찾을 수 있습니다, 당신은 단지 발견 된 각 테이블 이름
SELECT table_name FROM user_tab_columns WHERE column_name = :columnName;
실행 업데이트 쿼리 :
Execute immediate ('Update ' || table_name || ' set ' || column_name || ' = 2016 where ' || column_name || ' = 2014 ')
이상한 요구 사항입니다 ... 나는 DB를 다시 설계하는 것을 고려할 것이다. – jarlh