programing

Oracle PL/SQL의 테이블 변수?

sourcejob 2023. 10. 1. 19:26
반응형

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

반응형