database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 38891 게시물 읽기
No. 38891
해당컬럼값이 있는 테이블 전체 조회를 해서 업데이트를 해야하는데요..
작성자
궁금해요
작성일
2011-09-22 10:28
조회수
5,834

사용하는 테이블 전체에서 특정 컬럼명을 사용하고 있는 테이블을 조회해 온후,

조회된 테이블을 하나씩 돌면서 특정조건에 해당되는 값들을 업데이트 시키고 싶습니다.

예를 들어,

SELECT TABLE_NAME
          FROM (SELECT TABLE_NAME,COLUMN_NAME FROM USER_TAB_COLUMNS)
   WHERE COLUMN_NAME = 'ITEM'

으로 특정 컬럼명을 사용하는 전체 테이블을 갖고온 후, 결과값이 테이블 A,B,C,E,G 로 나왔습니다.

이제 저 위의 A테이블의 컬럼명이 'ITEM'인 데이터 값중에 특정 조건에 해당되는 값을을 업데이트 시키고,

그 다음 B테이블에서 컬럼명이 'ITEM'인 데이터 값중에서 특정 조건에 해당되는 값들을 업데이트 시키고 해서

조회된 테이블 G까지 모드 동일 조건으로 업데이트를 시키는건데요..

이게 쿼리 한번으로 가능한가요?? 저로써는 참 힘든 역경이.....ㅠㅠ 고수분들의 조언 부탁드립니다 ㅠㅠ

이 글에 대한 댓글이 총 3건 있습니다.

 한방쿼리로는 불가능합니다.. 테이블명이나 컬럼명을 변수값으로 쓸수가 없어서요..

프로시져 작성하시는건 가능하겠네요..

1님이 2011-09-22 11:01에 작성한 댓글입니다. Edit

그렇군요~답변 감사합니다.

프로시져 힌트 좀 알려주세요 ㅠㅠ 도무지 제 머리로는 ㅠㅠ

궁금해요님이 2011-09-22 11:10에 작성한 댓글입니다. Edit

 생각하신 로직 그대로 작성하시면 됩니다만 dynamic SQL 을 실행하는 방법은

EXEC 를 사용하시면 됩니다.

sql := 'UPDATE ' || cursor.TABLE_NAME || ' SET item=XXX';

EXEC sql;

이런식으로 하시면 됩니다.

1님이 2011-09-22 17:28에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
38894오라클 프로시져 문의 입니다,,,, [2]
진현철
2011-09-22
4873
38893오라클 에러좀 봐주세요! [3]
김태혁
2011-09-22
3334
3889211g에서 continue 를 10g 에서는? [1]
하홍민
2011-09-22
3494
38891해당컬럼값이 있는 테이블 전체 조회를 해서 업데이트를 해야하는데요.. [3]
궁금해요
2011-09-22
5834
38890암호화된 테이블의 쿼리조회시 복호화 속도 비교 문의. [2]
앙마승재
2011-09-22
4041
38889대량 Insert 실패 [1]
초보
2011-09-22
3537
38887쿼리좀 봐주세요 [3]
권혁수
2011-09-21
5116
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다