나는 이것이 완전히 멍청한 질문이라는 것을 인정하기 위해 당혹 스럽다. 그러나 나는 T-SQL 세계에서 왔다는 사실을 피할 수 없으며 이것은 나를위한 완전히 새로운 영토이다.PL/SQL select가 두 줄 이상을 반환 함
이것은이 계약자 및 프로젝트 ID를 가지고 수를 반환해야 내 PL의 SQL 기능 만
ContractorID ProjectID이
1 100 1000
2 100 800
3 200 1005
4 300 2000
원가 내가 4 개 레코드가 간단한 테이블입니다 시간 (10이 경우)
create or replace FUNCTION GetCost(contractor_ID IN NUMBER,
project_ID in NUMBER)
RETURN NUMBER
IS
ContractorCost NUMBER;
BEGIN
Select Cost INTO ContractorCost
from Contractor_Project_Table
where ContractorID= contractor_ID and ProjectID =project_ID ;
return ContractorCost;
END;
그러나
select GetCost(1,100) from Contractor_Project_Table;
사용이 동일한 행을 반환 4 회 여기 뭐가 문제
1000 1000 1000 1000
? 왜 4 행 대신
1 @a_horse_with_no_name가 지적 하듯이
'Contractor_Project_Table'의 각 행 **에 대해'getCost()'가 ** ** 한 번 호출되므로 해당 테이블에있는 행 수만큼 얻을 수 있습니다. 정규 결합 만 사용하면 그 함수를 사용하는 것보다 훨씬 효율적입니다. –