동적쿼리 질문... 0 2 2,602

by 배고파 [2011.07.07 17:07:50]


안녕하세요...
이 동적 쿼리가 무엇이 문제인지 모르겠네요...
어떻게 해결 하면 될까요?

CREATE OR REPLACE PROCEDURE dynamic_sql_02
    (v_table_name IN VARCHAR2)
IS
  
    v_str VARCHAR2(200);
    v_cnt NUMBER;
    v_temp VARCHAR2(50);
    v_table VARCHAR2(100):='TAA_KOR_ADDRESS';
   
    CURSOR cur_exists IS
    SELECT TABLE_NAME
    FROM USER_TABLES
    WHERE table_name = 'TABLE_ROWS';
   
BEGIN
   
    OPEN cur_exists;
    FETCH cur_exists INTO v_temp; 

    -- 데이터 카운트 조회
    v_str := 'SELECT COUNT(*) cnt FROM '||v_table_name ;
    EXECUTE IMMEDIATE v_str INTO v_cnt ;

    -- 데이터 insert
    --  ORA-00984 : 열을 사용할수 없습니다. 메세지가 나옵니다..
    v_str := 'INSERT INTO table_rows  VALUES ('||v_cnt||',' ||v_table|| ')';  
    EXECUTE IMMEDIATE v_str;

    DBMS_OUTPUT.PUT_LINE(' 테이블 명 : '||v_table_name||'  데이터 수 : '||v_cnt);   

    CLOSE cur_exists;

END;

by 마농 [2011.07.07 22:58:31]
실행 전 v_str 을 찍어 보세요. 문제점이 바로 보일 것입니다.
v_str := 'INSERT INTO table_rows VALUES ('||v_cnt||',''' ||v_table|| ''')';

by 배고파 [2011.07.08 09:15:31]
감사합니다..
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입