게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
오라클 if insert 프로시저
게시물ID : programmer_14411짧은주소 복사하기
작성자 : 고령
추천 : 0
조회수 : 2050회
댓글수 : 2개
등록시간 : 2015/11/13 13:55:35
옵션
  • 본인삭제금지
  • 외부펌금지

emp테이블에 신입사원을 등록하려고 한다. empno와 ename, deptno를 우선 입력하고 나머지 속성은 다음에 수정할 예정이다.
다음의 조건을 만족하는 프로시저를 작성하여 in_emp로 저장하고 발생할 수 있는 각각의 경우에 해당하는 데이터를 사용하여 실행결과를 보이세요.

조건1. empno와 ename, deptno을 매개변수로 입력받아서 처리하는 프로시저를 생성
조건2. 등록하려는 empno가 이미 등록된 번호가 아니라면 emp테이블에 입력시키고 만일 사용 중인 번호라면 다른 번호를 사용하도록 메시지를 주어 새로운 번호를 입력받아서 수행하도록 작성
조건3. deptno가 dept테이블에 없는 번호라면 있는 번호 중에서만 골라서 넣도록 메시지를 주어 새로운 번호를 입력받아서 수행하도록 작성

CREATE OR REPLACE PROCEDURE in_emp(
  new_empno IN emp.empno%TYPE,
  new_ename IN emp.ename%TYPE,
  new_deptno IN emp.deptno%TYPE)
IS  v_empno emp.empno%type;
BEGIN
    select empno into v_empno from emp;
    IF new_empno != v_empno then
     INSERT INTO emp (EMPNO, ENAME, DEPTNO) 
     VALUES (v_empno, new_ename, new_deptno); 
    ELSE dbms_output.put_line('새로운 번호를 다시 입력하세요.');
    END IF;
 COMMIT;
END;
/

과제로 아래의 프로시저를 작성해야하는데 조건2까지 작성을 했습니다.
Procedure created. 라고 오라클에 출력되는데 실행을 시키면 

SQL> exec in_emp(8000,'BLACK',10);
BEGIN in_emp(8000,'BLACK',10); END;

*
ERROR at line 1:
ORA-01422: exact fetch returns more than requested number of rows
ORA-06512: at "S214210031.IN_EMP", line 7
ORA-06512: at line 1

이런 오류가 뜨네요.
어디가 문제인지 모르겠습니다.
도와주세요..ㅠㅠ
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호