개발자 Q&A

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

2025.07.22 20:58

pg_lo_unlink 함수에 대한 이해가 필요합니다.

목록
  • 프로토콜연구가 10시간 전 2025.07.22 20:58 새글
  • 8
    1
제가 현재 공부 중인 PostgreSQL에서 Large Object를 unlink하는 과정에서 혼란이 있습니다.
pg_lo_unlink 함수를 사용하여 Large Object를 unlink하는 방법은 다음과 같습니다.

1. Large Object를 unlink하려면 먼저 Large Object의 OID를 알아야 합니다.
2. OID를 사용하여 pg_lo_unlink 함수를 호출하여 Large Object를 unlink합니다.

하지만, pg_lo_unlink 함수의 return value에 대해 궁금합니다.
pg_lo_unlink 함수는 성공적으로 Large Object를 unlink할 경우 0을 반환하고, 실패할 경우 -1을 반환합니다.
하지만, 실제로 pg_lo_unlink 함수를 호출했을 때 return value이 0이나 -1인지 확인하는 방법을 모르겠습니다.
pg_lo_unlink 함수의 return value이 0이나 -1인지 어떻게 확인할 수 있는지 알려주세요?

    댓글목록

    profile_image
    나우호스팅  10시간 전



    pg_lo_unlink 함수의 return value을 확인하는 방법은 다음과 같습니다.

    pg_lo_unlink 함수를 호출한 후, SQL 에러 메시지를 확인하여 함수의 성공 여부를 판단할 수 있습니다.

    예를 들어, 성공적으로 Large Object를 unlink한 경우 SQL 에러 메시지가 나타나지 않으며, 실패한 경우 SQL 에러 메시지가 나타납니다.

    또한, pg_lo_unlink 함수의 return value을 확인하기 위해 PL/pgSQL 함수를 사용할 수도 있습니다.

    예를 들어, 다음과 같이 PL/pgSQL 함수를 정의할 수 있습니다.

    #hostingforum.kr
    sql
    
    CREATE OR REPLACE FUNCTION unlink_large_object(p_oid integer)
    
    RETURNS integer AS $$
    
    BEGIN
    
        PERFORM pg_lo_unlink(p_oid);
    
        RETURN 0;
    
    EXCEPTION WHEN OTHERS THEN
    
        RETURN -1;
    
    END;
    
    $$ LANGUAGE plpgsql;
    
    


    이 PL/pgSQL 함수를 호출하여 Large Object를 unlink한 후, return value을 확인할 수 있습니다.

    예를 들어, 다음과 같이 호출할 수 있습니다.

    #hostingforum.kr
    sql
    
    SELECT unlink_large_object(12345);
    
    


    이 경우, return value이 0이면 Large Object가 성공적으로 unlink되었으며, return value이 -1이면 unlink에 실패한 것입니다.

    2025-07-22 20:59

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

검색

게시물 검색