프로시져로 시퀀스 이용하여 자동으로 3개 필드에 자동으로 일련번호를 등록 시키는 프로시져를 만들려고 합니다.
한번 확인 부탁드립니다.
CREATE OR REPLACE PROCEDURE ABC.TN_INPUT_EXECEL AS v_mem_name VARCHAR2(255); v_check1_info VARCHAR2(255); v_check2_info VARCHAR2(255); BEGIN FOR order_list IN (SELECT * FROM MASTR_EXECEL2 WHERE 1=1 ) LOOP SELECT SQ_REQ_MASTR.NEXTVAL INTO v_mem_name FROM DUAL; SELECT SQ_ATCHMNFL_GROUP.NEXTVAL INTO v_check1_info FROM DUAL; SELECT SQ_ATCHMNFL_GROUP.NEXTVAL INTO v_check2_info FROM DUAL; UPDATE MASTR_EXECEL2 SET REQ_MASTR_SN = v_mem_name ,ATCHMNFL_GROUP_NO = v_check1_info ,ATCHMNFL_GROUP_NO2 = v_check2_info ; COMMIT; dbms_output.put_line(' REQ_MASTR_SN ==> ' || v_mem_name); dbms_output.put_line(' ATCHMNFL_GROUP_NO ==> ' || v_check1_info); dbms_output.put_line(' ATCHMNFL_GROUP_NO2 ==> ' || v_check2_info); END LOOP; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('오류 발생 : TN_INPUT_EXECEL'); END TN_INPUT_EXECEL;
Update 문에 Where 절이 없네요?
PK, UK, ROWID 등의 유일키 조건을 줘야 합니다.
http://gurubee.net/lecture/1068