동적 쿼리를 사용하면 되지만. (EXECUTE IMMEDIATE)
http://gurubee.net/lecture/1720
애초에 테이블에서 가져오는 값이라면? 쿼리에 직접 테이블을 사용하면 되지 않나요?
답변감사합니다.
말씀하신거처럼 동적 쿼리를 사용하려고 합니다. 헌데 VARCHAR변수를 동적쿼리로 만들어서 하면 '가 붙는지 궁금해서요
SEQNO := '6,4,3,1';
EXECUTE IMMEDIATE 'UPDATE TAB COL = 6 WHERE COL IN ( ' || SEQNO || ')';
이렇게 만들경우 UPDATE TAB COL = 6 WHERE COL IN ('6,4,3,1') 이렇게 되지 않을까 하는 궁금증이 들어서요.
6, 4, 3, 1의 총 4건의 UPDATE가 실행되어야 하는데 전체를 한문자로 읽어들이지않을까 합니다.
직접 테이블 사용의 이해를 못했습니다.
TAB에서 NO를 가져와서 TAB2, TAB3 두개의 참조테이블에는 MAX값인 6으로 업데이트 TAB에는 6를 제외한 나머지삭제
중복제거로 하루나 일주일 간격으로 실행하려고 하거든요
안될것같아서 LOOP를 선택했는데 궁금증 해소를 위해 로그라도 찍어보게 동적으로 해보긴 해야겠네요 ㅎㅎ
DECLARE v_col1 tab1.col1%TYPE; BEGIN SELECT MAX(col1) INTO v_col1 FROM tab1 WHERE /* 조건 */ ; UPDATE tba2 SET col1 = v_col1 WHERE col1 != v_col1 AND col1 IN (SELECT col1 FROM tab1 WHERE /* 조건 */) ; UPDATE tba3 SET col1 = v_col1 WHERE col1 != v_col1 AND col1 IN (SELECT col1 FROM tab1 WHERE /* 조건 */) ; DELETE FROM tab1 WHERE /* 조건 */ AND col1 != v_col1 ; END; /