Oracle PL/SQL의 테이블 변수?
저는 최근 개발자로 새로운 일을 시작했는데 PL/SQL에 약간 문제가 있습니다.저는 MS SQL을 몇 년 동안 사용해 왔지만 PL/SQL이 좀 더 까다롭다는 것을 알게 되었습니다.
MS SQL에서 함수를 작성하고 프로시저를 저장할 때 제가 했던 일 중 하나는 반복되는 결과 집합을 테이블 변수에 입력하여 프로시저 전체에 요청할 필요가 없도록 하는 것이었습니다.
이와 같은 것:
declare @badPeople table(recordPointer int)
insert into @badPeople
select BP_Record_Pointer
from People
where BP_Bad = 1
PL/SQL에서 비슷한 작업을 하려고 하는데 어떻게 시작해야 할지 잘 모르겠습니다.이것이 가능하기까지 한 방법이 있습니까?
declare
type t_number is table of number;
v_numbers t_number;
begin
select BP_Record_Pointer
bulk collect into v_numbers
from People
where BP_Bad = 1;
end;
이렇게 하면 테이블의 값을 포함하는 중첩 테이블이 생성됩니다.익명 블록의 끝에 테이블이 범위를 벗어나므로 해당 블록에서 원하는 작업을 수행해야 합니다.
Oracle에서는 MS SQL 커서와 달리 악마로 간주되지 않으며 피해야 할 것으로 간주됩니다.따라서 일반적으로 Oracle에서는 MS SQL보다 훨씬 더 자주 커서를 사용하게 됩니다. 물론 SQL만 사용하고 가장 좋은 커서가 없다면 Oracle에서 커서를 테스트하고 사용하는 것을 두려워하지 마십시오.PL/SQL에 관한 좋은 책을 구하세요. 이것은 좋은 책입니다. http://www.amazon.com/Oracle-PL-SQL-Programming-4th/dp/0596009771 .Gratzy의 게시물은 당신이 사용할 수 있는 또 다른 옵션입니다.그러니 언제 무엇을 사용해야 하는지 알아낼 수 있는 좋은 책을 구하세요.PL/SQL은 T-SQL에 비해 매우 풍부한 환경입니다.초기 곡선을 넘어서면 학습 곡선이 더 많아지기는 하지만 정말 쉽고 강력한 언어입니다.그 외에도 굉장히 재미있습니다.
언급URL : https://stackoverflow.com/questions/1573326/table-variables-in-oracle-pl-sql
'programing' 카테고리의 다른 글
| Powershell에서 Start-Website 명령을 실행할 때 "파일을 만들 수 없습니다" 오류가 발생했습니다. (0) | 2023.10.06 |
|---|---|
| 각진 안전하지 않은 링크 (0) | 2023.10.06 |
| Vulkan: vk*CreateInfo structs에서 sType의 요점은 무엇입니까? (0) | 2023.10.01 |
| Vulkan: What is the point of sType in vk*CreateInfo structs? (0) | 2023.10.01 |
| 입력 시 ng-click 동작 방지 (0) | 2023.10.01 |