programing

Oracle PL/SQL where 절에서 변수를 사용하는 방법

megabox 2023. 11. 5. 11:07
반응형

Oracle PL/SQL where 절에서 변수를 사용하는 방법

Oracle PL/SQL where 절에서 작동할 변수를 얻을 수 없는 것 같습니다.저는 마이크로소프트 SQL 서버 배경 출신이고 거기서는 쉬웠습니다.예를 들어, 다음과 유사한 작업을 수행하는 데 필요한 모든 단계는 무엇입니까?

declare @var int set @var = 1

select * from SomeTable where SomeField = @var

이것은 PL/SQL에서는 어려울 것 같지 않지만 분명히 어려울 것입니다. :-/ PL/SQL에서는 커서 등을 사용해야 한다고 하던데요?

어떤 도움이라도 주시면 대단히 감사하겠습니다.감사해요.

SELECT가 반환하는 데이터를 어떻게 처리하시겠습니까?PL/SQL이 전혀 필요 없는 경우 SQL Plus에서 이 작업을 수행하면 됩니다.

variable var number
exec :var := 1

select * from SomeTable where SomeField = :var;

또는 SQL Developer나 Toad와 같은 툴에서 다음과 같은 작업을 수행합니다.

select * from SomeTable where SomeField = :var;

그러면 :var에 대한 값을 입력하라는 메시지가 나타납니다.

다음 코드는 변수를 선언합니다.var에 사용하다WHERE절과 변수result결과를 에 넣은 다음 PL/SQL 블록 안에서 실행합니다.

DECLARE
   var      INT := 1;
   result   INT;
BEGIN
   SELECT 123
     INTO result
     FROM DUAL
    WHERE var = 1;

   DBMS_OUTPUT.put_line (var);
   DBMS_OUTPUT.put_line (result);
END;

DBMS_OUTPUT.PUT_LINE호출을 통해 다음과 같은 DBMS 출력이 생성됩니다.

1
123
declare

  type t_rec is record
  (
  col1 number,
  col2 myTable.col2%type
  );
  v_rec t_rec;

  type t_tab is table of v_rec%type index by binary_integer;
  v_tab t_tab;

begin

  select col1, col2
  bulk collect into v_tab
  from myTable
  where col3 = 'BLAH';

  -- do something great with v_tab...

end;

또한 변수를 선택(또는 대량 수집)하려고 해도 반환되는 행이 없으면 no_data_found 예외가 발생하므로 해당 상황을 처리해야 할 수도 있습니다.

pl/sql 컬렉션에 대한 자세한 내용은 여기를 참조하십시오.위에서는 연관 배열을 사용하지만 중첩된 표와 배열도 있습니다.다시 링크를 봅니다.

도움이 되길 바랍니다.

이렇게 써요.

select * from sec_mainmenu where serno = '&MENU_ID';

실행하면 PL/sql에서 MENU_ID 값을 입력하라는 메시지가 나타납니다.

언급URL : https://stackoverflow.com/questions/5666647/how-to-use-variables-in-an-oracle-pl-sql-where-clause

반응형