찾다
운영 및 유지보수리눅스 운영 및 유지 관리Oracle 저장 프로시저를 사용하여 페이징 쿼리를 구현하는 방법을 설명하는 예

Oracle 데이터베이스에서는 저장 프로시저를 사용하여 여러 복잡한 논리를 구현할 수 있으며 그 중 페이징 쿼리도 일반적인 요구 사항 중 하나입니다. 이 문서에서는 Oracle 저장 프로시저를 사용하여 페이징 쿼리를 구현하는 방법을 소개하고 예제를 제공합니다.

1. 페이징 쿼리 요구 사항

실제 애플리케이션에서는 일반적으로 많은 양의 데이터를 쿼리하고 표시해야 합니다. 모든 데이터가 한꺼번에 표시되면 시스템 성능에 영향을 미칠 뿐만 아니라 사용자 경험도 저하됩니다. 따라서 일반적으로 데이터를 페이지 단위로 표시하고 데이터를 페이지 단위로 표시해야 합니다.

Oracle 데이터베이스에서 페이징 쿼리는 일반적으로 ROWNUM 키워드를 사용하여 구현됩니다. 예를 들어 데이터베이스의 처음 10개 레코드를 쿼리하려면 다음 쿼리 문을 사용할 수 있습니다.

SELECT *
FROM table_name
WHERE ROWNUM <p>이 쿼리 문은 테이블의 처음 10개 데이터를 반환하고 간단한 페이징 쿼리를 구현할 수 있습니다. 하지만 11~20번째 데이터를 쿼리해야 하는 경우에는 좀 더 복잡한 쿼리 문을 사용해야 합니다. </p><pre class="brush:php;toolbar:false">SELECT *
FROM (
  SELECT ROWNUM rn, t.*
  FROM (
    SELECT *
    FROM table_name
    ORDER BY field_name
  ) t
  WHERE ROWNUM = 11;

이 쿼리 문은 테이블의 11~20번째 데이터를 반환할 수 있습니다. 그러나 이 쿼리 문은 상대적으로 복잡하고 읽기가 쉽지 않습니다. 페이징 쿼리가 필요한 곳이 많으면 이러한 쿼리문을 많이 작성해야 하므로 유지 관리가 편리하지 않습니다.

이 문제를 해결하기 위해 Oracle 저장 프로시저를 사용하여 페이징 쿼리 기능을 구현할 수 있습니다.

2. 저장 프로시저를 사용하여 페이징 쿼리 구현

저장 프로시저를 사용하여 주로 매개변수 전달을 통해 페이징 쿼리 기능을 구현합니다. 다음 매개변수를 전달해야 합니다:

    표시할 열
  • 페이지;
  • 이러한 매개변수를 기반으로 저장 프로시저는 ROWNUM 키워드를 기반으로 페이징 쿼리를 구현할 수 있습니다.
  • 다음은 저장 프로시저를 사용하여 페이징 쿼리를 구현하는 예입니다.
CREATE OR REPLACE PROCEDURE get_page_data(
    p_table_name IN VARCHAR2,
    p_columns IN VARCHAR2,
    p_order_by IN VARCHAR2,
    p_page_num IN NUMBER,
    p_page_size IN NUMBER,
    p_result OUT SYS_REFCURSOR
)
IS
BEGIN
    OPEN p_result FOR
        SELECT *
        FROM (
            SELECT ROWNUM rn, t.*
            FROM (
                SELECT p_columns
                FROM p_table_name
                ORDER BY p_order_by
            ) t
            WHERE ROWNUM = (p_page_num - 1) * p_page_size + 1;
END;
/
  • 이 저장 프로시저에서는 SYS_REFCURSOR 유형을 사용하여 쿼리 결과를 반환합니다. 그런 다음 전달된 매개 변수를 기반으로 페이징 쿼리 문이 생성되고 마지막으로 쿼리 결과가 반환된 결과 집합에 입력됩니다.
  • 이 저장 프로시저를 호출할 때 다음 쿼리를 사용할 수 있습니다.

    DECLARE
        v_result SYS_REFCURSOR;
    BEGIN
        get_page_data('table_name', '*', 'field_name', 2, 10, v_result);
    END;
    /
    이 쿼리는 테이블의 2페이지에 있는 데이터를 반환하며 각 페이지에는 10개의 레코드가 표시됩니다.

    간단히 말하면 저장 프로시저를 사용하면 페이징 쿼리 기능을 쉽게 구현할 수 있어 코드가 더 명확해지고, 이해하기 쉽고, 유지 관리가 쉬워집니다. 위의 예는 실제 필요에 따라 수정 및 확장할 수 있는 아이디어를 제공했습니다.

    위 내용은 Oracle 저장 프로시저를 사용하여 페이징 쿼리를 구현하는 방법을 설명하는 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    일반적인 Linux 명령에 대한 키워드 찾기에 대한 튜토리얼일반적인 Linux 명령에 대한 키워드 찾기에 대한 튜토리얼Mar 05, 2025 am 11:45 AM

    이 튜토리얼은 GREP 명령 패밀리 및 관련 도구를 사용하여 Linux에서 효율적인 키워드 검색을 보여줍니다. 정규 표현식, 재귀 검색 및 AWK, SED 및 XA와 같은 명령을 포함한 기본 및 고급 기술을 다룹니다.

    Linux 운영 및 유지 보수 엔지니어의 작업 내용 Linux 운영 및 유지 보수 엔지니어는 무엇을합니까?Linux 운영 및 유지 보수 엔지니어의 작업 내용 Linux 운영 및 유지 보수 엔지니어는 무엇을합니까?Mar 05, 2025 am 11:37 AM

    이 기사는 시스템 유지 보수, 문제 해결, 보안 및 협업을 포함하는 Linux 시스템 관리자의 다각적 역할을 자세히 설명합니다. 필수 기술 및 소프트 기술, 급여 기대치 및 다양한 커리어 PR을 강조합니다.

    Linux의 보안을 향상시키기 위해 Selinux 또는 Apparmor를 어떻게 구성합니까?Linux의 보안을 향상시키기 위해 Selinux 또는 Apparmor를 어떻게 구성합니까?Mar 12, 2025 pm 06:59 PM

    이 기사는 필수 액세스 제어를 제공하는 Linux 커널 보안 모듈 인 Selinux와 Apparmor를 비교합니다. 접근 방식의 차이 (정책 기반 대 프로필 기반) 및 잠재적 성능 영향을 강조하는 구성을 자세히 설명합니다.

    Linux 시스템을 백업하고 복원하려면 어떻게해야합니까?Linux 시스템을 백업하고 복원하려면 어떻게해야합니까?Mar 12, 2025 pm 07:01 PM

    이 기사는 Linux 시스템 백업 및 복원 방법에 대해 자세히 설명합니다. 전체 시스템 이미지 백업을 증분 백업과 비교하고 최적의 백업 전략 (규칙, 여러 위치, 버전, 테스트, 보안, 회전) 및 DA에 대해 설명합니다.

    Top, HTOP 및 VMSTAT와 같은 도구를 사용하여 Linux에서 시스템 성능을 모니터링하려면 어떻게해야합니까?Top, HTOP 및 VMSTAT와 같은 도구를 사용하여 Linux에서 시스템 성능을 모니터링하려면 어떻게해야합니까?Mar 17, 2025 pm 05:28 PM

    이 기사는 Linux 시스템 성능을 모니터링하기위한 Top, HTOP 및 VMSTAT 사용에 대해 설명하고 효과적인 시스템 관리를위한 고유 한 기능 및 사용자 정의 옵션을 자세히 설명합니다.

    Linux에서 SSH에 대해 2 단계 인증 (2FA)을 구현하려면 어떻게합니까?Linux에서 SSH에 대해 2 단계 인증 (2FA)을 구현하려면 어떻게합니까?Mar 17, 2025 pm 05:31 PM

    이 기사는 Google Authenticator를 사용하여 Linux에서 SSH에 대한 2 단계 인증 (2FA) 설정, 설치, 구성 및 문제 해결 단계에 대한 가이드를 제공합니다. Enhanced SEC와 같은 2FA의 보안 이점을 강조합니다.

    공통 Linux 명령에 파일을 업로드하는 방법공통 Linux 명령에 파일을 업로드하는 방법Mar 05, 2025 am 11:42 AM

    이 기사는 파일 업로드를 위해 Linux 명령 (SCP, SFTP, RSYNC, FTP)을 비교합니다. 보안 (SSH 기반 방법을 선호) 및 효율성을 강조하여 대형 파일에 대한 RSYNC의 델타 전송 기능을 강조합니다. 선택은 파일 크기에 따라 다릅니다.

    패턴 매칭을 위해 Linux에서 정규식 (Regex)을 어떻게 사용합니까?패턴 매칭을 위해 Linux에서 정규식 (Regex)을 어떻게 사용합니까?Mar 17, 2025 pm 05:25 PM

    이 기사는 패턴 매칭, 파일 검색 및 텍스트 조작을 위해 Linux에서 정규식 (Regex)을 사용하는 방법, 구문, 명령 및 Grep, Sed 및 Awk와 같은 도구를 자세히 설명합니다.

    See all articles

    핫 AI 도구

    Undresser.AI Undress

    Undresser.AI Undress

    사실적인 누드 사진을 만들기 위한 AI 기반 앱

    AI Clothes Remover

    AI Clothes Remover

    사진에서 옷을 제거하는 온라인 AI 도구입니다.

    Undress AI Tool

    Undress AI Tool

    무료로 이미지를 벗다

    Clothoff.io

    Clothoff.io

    AI 옷 제거제

    AI Hentai Generator

    AI Hentai Generator

    AI Hentai를 무료로 생성하십시오.

    뜨거운 도구

    스튜디오 13.0.1 보내기

    스튜디오 13.0.1 보내기

    강력한 PHP 통합 개발 환경

    SublimeText3 중국어 버전

    SublimeText3 중국어 버전

    중국어 버전, 사용하기 매우 쉽습니다.

    SublimeText3 Linux 새 버전

    SublimeText3 Linux 새 버전

    SublimeText3 Linux 최신 버전

    메모장++7.3.1

    메모장++7.3.1

    사용하기 쉬운 무료 코드 편집기

    드림위버 CS6

    드림위버 CS6

    시각적 웹 개발 도구