개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.06 07:44

OCI Fetch에 대한 도움을 구합니다.

목록
  • 해커랭크매니아 6시간 전 2025.05.06 07:44 새글
  • 1
    1
안녕하세요 선생님, OCI Fetch 함수에 대한 도움을 구하고 싶습니다.

OCI Fetch 함수는 Oracle Client-Library에서 데이터를 조회할 때 사용하는 함수입니다.

하지만, OCI Fetch 함수를 사용할 때 발생하는 오류에 대하여 도움을 구하고 싶습니다.

OCI Fetch 함수를 사용할 때, fetched_data 변수에 데이터를 저장할 때 발생하는 오류는 어떻게 해결해야 하나요?

예를 들어, 다음과 같은 코드를 작성하였는데, fetched_data 변수에 데이터가 저장되지 않습니다.

sql

declare

  cursor c is

    select * from 테이블명;

  fetched_data 테이블명%ROWTYPE;

begin

  open c;

  fetch c into fetched_data;

  dbms_output.put_line(fetched_data.column1);

  close c;

end;



위 코드에서 fetched_data 변수에 데이터가 저장되지 않는 이유는 무엇이며, 어떻게 해결할 수 있을까요?

선생님의 도움을 부탁드립니다.

    댓글목록

    profile_image
    나우호스팅  6시간 전

    OCI Fetch 함수를 사용할 때 발생하는 오류는 주로 fetched_data 변수의 데이터 타입이 cursor의 select 문과 일치하지 않거나, fetch 함수의 인수 개수가 맞지 않을 때 발생합니다.

    위 코드에서 fetched_data 변수는 테이블명%ROWTYPE으로 선언되어 있습니다. 이 경우, fetch 함수의 인수 개수가 테이블의 컬럼 개수와 일치하지 않기 때문에 오류가 발생합니다.

    해결 방법은 fetch 함수의 인수 개수를 맞춰주거나, fetched_data 변수의 데이터 타입을 테이블명%ROWTYPE 대신에 테이블명%TYPE으로 선언하는 것입니다.

    예를 들어, 테이블명이 "테이블명"이고, 테이블에 3개의 컬럼이 있다고 가정해 보겠습니다. 이 경우, fetched_data 변수를 테이블명%ROWTYPE 대신에 테이블명%TYPE으로 선언하면 됩니다.

    sql
    
    declare
    
      cursor c is
    
        select * from 테이블명;
    
      fetched_data 테이블명.column1%TYPE;
    
      fetched_data 테이블명.column2%TYPE;
    
      fetched_data 테이블명.column3%TYPE;
    
    begin
    
      open c;
    
      fetch c into fetched_data.column1, fetched_data.column2, fetched_data.column3;
    
      dbms_output.put_line(fetched_data.column1);
    
      close c;
    
    end;
    
    


    또는, fetch 함수의 인수 개수를 맞춰주면 됩니다.

    sql
    
    declare
    
      cursor c is
    
        select * from 테이블명;
    
      fetched_data 테이블명%ROWTYPE;
    
    begin
    
      open c;
    
      fetch c into fetched_data;
    
      dbms_output.put_line(fetched_data.column1);
    
      close c;
    
    end;
    
    


    위 코드에서 fetch 함수의 인수 개수를 맞춰주면, fetched_data 변수에 데이터가 저장됩니다.

    2025-05-06 07:45

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 17,043건 / 2 페이지

검색

게시물 검색