프로 시저를 만들었습니다. 오류가 발생했습니다 (ORA-01422 : 정확한 페치가 요청 된 행 수 이상을 반환합니다). 특정 department_id에는 둘 이상의 직원이 있습니다. 그러나이 문제를 해결하는 방법?PL/SQL : 프로 시저 실행
Create Procedure PP1
(ID in number, Percent in number, Sal out number, increase_sal out number) IS
Begin
Select salary, salary *(1+percent/100) into sal, increase_sal
From employees
where department_id= id;
DBMS_OUTPUT.PUT_LINE (sal || ' ' || increase_sal);
END;
/
Variable a number
Variable b number
Exec PP1 (100, 10, :a, :b)
Print a b
감사합니다, Kuntal 로이
출력이 어떻게 되겠습니까? 하나의 변수는 한 번에 하나의 값만을 가질 수 있으므로 하나 이상의 행을 반환하는'select ... into ... '를 실행할 수 없습니다. – GriffeyDog
예. department_id = id 대신 employee_id = id를 사용했다면 프로 시저가 value를 반환했을 것입니다. 하지만 특정 부서의 급여를 늘리려면 어떻게해야합니까? – user2788235
그렇다면 대신에 'department_id'를 사용할 때'a'와'b'의 값이 프로 시저에서 나오기를 기대하고 있습니까? 무엇을 성취하려고합니까? – GriffeyDog