저장 프로 시저은 변경할 수 없습니다. 커서에 결과의 열 수가있는을 반환합니다. 거기에 오라클의 간단한 방법은 BULK COLLECT INTO
커서의 하위 집합만을 제공 하는가?Oracle Cursor에서 열의 하위 집합을 일괄 수집
FOR
루프 및 새 컬렉션 유형은 피해야합니다. 나는 커서에서 모든 데이터를 가져오고 싶지 않다. 단지 필요한 데이터이다. 커서에서 예를 들어
BULK COLLECTION INTO
모든 열은 작동합니다 다음
FETCH s_cursor BULK COLLECT INTO staff_ids;
흠, 새로운 컬렉션 유형에 대한 추가 제한 사항을 추가했습니다. 어떤 문제를 해결하려고합니까? 성능을 향상시키는 것입니까? –
예, 기본적으로 성능 누출을 피하기 위해 언어의 모든 리소스를 사용하고 싶습니다. 필요 이상으로 많은 데이터를 가져 오지 않으려면 저장 프로 시저를 복사하고 불필요한 열을 제거해야한다고 생각합니다. 비록 코드 중복을 초래할지라도. – Leonid
그래, 성능 누출을 피하려면 수정 된/새 저장 프로 시저가 필요합니다. 커서를 연 후 원치 않는 열을 삭제하면 데이터베이스가 이미 모든 노력을 다했기 때문에 성능 누출이 이미 발생했습니다. –