이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.토토 결과 PostgreSQL : 문서 : 17 : 선언버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

젠 토토

이름

DECLARE -- 젠 토토 정의

시놉시스

젠 토토이름[ 바이너리 ] [ 민감하지 않음 ] [ [ 아니오 ] 스크롤 ]
    젠 토토 [  함께 |  없이 ] 보류 ] FOR질의

설명

젠 토토사용자가 생성할 수 있도록 허용합니다. 적은 수의 행을 검색하는 데 사용할 수 있는 커서 더 큰 쿼리의 시간 초과. 커서가 생성된 후 행 다음을 사용하여 가져옵니다.가져오기.

참고:이 페이지는 다음 위치에서 커서의 사용법을 설명합니다. SQL 명령 수준. a 내부에서 커서를 사용하려는 경우PL/pgSQL함수, 규칙 다르다 — 참조PostgreSQL : 문서.

매개변수

이름

생성될 커서의 이름입니다.

바이너리

커서가 데이터를 바이너리가 아닌 바이너리로 반환하도록 합니다. 텍스트 형식으로.

민감함

커서에서 검색된 데이터가 다음과 같아야 함을 나타냅니다. 커서 아래에 있는 테이블 업데이트의 영향을 받지 않습니다. 커서가 생성된 후에 발생합니다. 에서포스트그레SQL, 이것이 기본값입니다 행동; 따라서 이 핵심 단어는 아무런 효과가 없으며 단지 SQL 표준과의 호환성을 위해 승인되었습니다.

스크롤
스크롤 없음

스크롤다음을 지정합니다. 커서를 사용하여 비순차적으로 행을 검색할 수 있습니다. 패션(예: 뒤로). 복잡성에 따라 쿼리 실행 계획, 지정스크롤성능 저하를 부과할 수 있습니다. 쿼리 실행 시간입니다.아니요 스크롤커서를 다음 작업에 사용할 수 없음을 지정합니다. 비순차적 방식으로 행을 검색합니다. 기본값은 어떤 경우에는 스크롤을 허용합니다. 이건 같지 않아 지정스크롤. 참조참고자세한 내용은.

보류 있음
보류 없음

보류 있음다음을 지정합니다. 커서는 트랜잭션 이후에도 계속 사용될 수 있습니다. 성공적으로 커밋되었습니다.보류 없음젠 토토가 이를 생성한 트랜잭션 외부에서는 사용할 수 없습니다. 둘 다 아니라면보류 없음아니요보류 있음지정되었습니다.보류 없음기본값입니다.

질의

A 스포츠 토토 : 문서 : 8.4 : select또는토토 43_96명령 이는 에서 반환할 행을 제공합니다. 젠 토토.

핵심 단어바이너리, 민감함스크롤어떤 순서로도 나타날 수 있습니다.

참고

일반 젠 토토는 a와 같은 텍스트 형식으로 데이터를 반환합니다.선택생산할 것입니다.바이너리옵션은 커서가 데이터를 바이너리 형식으로 반환합니다. 이렇게 하면 변환 노력이 줄어듭니다. 더 많은 프로그래머 노력의 대가로 서버와 클라이언트 모두 플랫폼에 따른 바이너리 데이터 형식을 처리합니다. 로서 예를 들어 쿼리가 정수에서 1의 값을 반환하는 경우 열을 사용하면 다음과 같은 문자열을 얻게 됩니다.1와 함께 기본 커서인 반면, 바이너리 커서를 사용하면 값의 내부 표현을 포함하는 4바이트 필드 (빅엔디안 바이트 순서).

바이너리 커서는 주의해서 사용해야 합니다. 많은 응용 프로그램, 포함psql, 준비되지 않았습니다. 바이너리 커서를 처리하고 데이터가 텍스트로 다시 돌아올 것으로 기대합니다. 형식.

참고:클라이언트 응용프로그램이 다음을 사용할 때"확장 쿼리"발행할 프로토콜 에가져오기명령, 바인드 프로토콜 메시지는 데이터를 텍스트로 검색할지 여부를 지정합니다. 바이너리 형식. 이 선택은 커서가 이동하는 방식을 재정의합니다. 정의되어 있습니다. 따라서 이진 커서의 개념은 다음과 같습니다. 확장 쿼리 프로토콜을 사용하면 더 이상 사용되지 않습니다. 모든 커서는 텍스트 또는 바이너리로 처리됩니다.

그렇지 않은 경우보류 있음이 지정되면 이 명령으로 생성된 커서는 현재 거래. 따라서,젠 토토없이보류 있음외부에서는 쓸모가 없습니다 트랜잭션 블록: 커서는 다음 시점까지만 유지됩니다. 성명서의 완성. 그러므로PostgreSQL다음과 같은 경우 오류를 보고합니다. 명령은 트랜잭션 블록 외부에서 사용됩니다. 사용PostgreSQL : 문서 : 8.4 : 토토 사이트 순위그리고커밋(또는롤백) 거래 정의 차단합니다.

만약보류 있음이 지정되었으며 커서를 생성한 트랜잭션이 성공적으로 커밋되면 커서는 후속 트랜잭션에서 계속 액세스할 수 있습니다. 같은 세션. (그러나 생성된 트랜잭션이 중단된 경우, 커서가 제거됩니다.) 커서는보류 있음명시적인 경우 닫힙니다.닫기명령이 실행되거나 세션이 끝납니다. 현재 구현에서는 유지된 커서는 임시 파일이나 메모리 영역에 복사되므로 후속 거래에도 계속 사용할 수 있습니다.

보류 있음다음의 경우에는 지정되지 않을 수 있습니다. 쿼리에는 다음이 포함됩니다.업데이트용또는공유용.

스크롤옵션을 지정해야 합니다. 뒤로 가져오는 데 사용할 커서를 정의할 때. 이 SQL 표준에서 필요합니다. 그러나 호환성을 위해 이전 버전,PostgreSQL없이 뒤로 가져오기를 허용합니다스크롤, 커서의 쿼리 계획이 단순한 경우 이를 지원하는 데 추가 오버헤드가 필요하지 않을 정도로 충분합니다. 그러나, 응용 프로그램 개발자는 이전 버전 사용에 의존하지 않는 것이 좋습니다. 로 생성되지 않은 커서에서 가져옵니다.스크롤. 만일스크롤 없음이다 지정하면 어떠한 경우에도 역방향 가져오기가 허용되지 않습니다.

쿼리에 포함된 경우 역방향 가져오기도 허용되지 않습니다.업데이트용또는에 대한 공유; 그러므로스크롤그렇지 않을 수도 있습니다 이 경우에는 지정됩니다.

주의

스크롤 가능 및보류 있음젠 토토가 호출할 경우 예상치 못한 결과가 나타날 수 있습니다. 휘발성 함수(참조섹션 34.6). 언제 이전에 가져온 행을 다시 가져오면 함수가 다시 실행되어 이전과 다른 결과가 나올 수도 있습니다. 처음으로. 이러한 경우에 대한 한 가지 해결 방법은 다음과 같습니다. 커서 젠 토토보류 있음그리고 트랜잭션에서 행을 읽기 전에 트랜잭션을 커밋합니다. 그러면 커서의 전체 출력이 강제로 임시저장소에 구체화되어 휘발성이 있음 함수는 각 행에 대해 정확히 한 번씩 실행됩니다.

커서의 쿼리에 다음이 포함된 경우에 대한 업데이트또는공유용, 그런 다음 반환됨 행은 처음 인출될 때 동시에 잠겨 있습니다. 보통의 경우와 마찬가지로선택이 옵션을 사용하여 명령하세요. 에서 또한 반환된 행은 최신 버전이 됩니다. 따라서 이러한 옵션은 SQL에서 제공하는 것과 동일한 기능을 제공합니다. 표준 통화 a"민감한 젠 토토". (지정민감함함께업데이트용또는에 대한 공유오류입니다.)

주의

일반적으로 사용하는 것이 좋습니다.업데이트용커서가 의도된 경우 와 함께 사용됨업데이트...현재 위치 OF또는삭제...현재 위치 OF. 사용업데이트용다른 세션이 사이의 행을 변경하는 것을 방지합니다. 가져온 시간과 업데이트된 시간입니다. 없이업데이트용, 후속현재는 어디에서명령은 젠 토토 이후 행이 변경된 경우 아무 효과가 없습니다. 생성되었습니다.

사용해야 할 또 다른 이유에 대한 업데이트그게 없으면 다음은현재는 어디에서젠 토토가 쿼리가 SQL 표준의 존재 규칙을 충족하지 않습니다."단순히 업데이트 가능"(에서 특히 젠 토토는 하나의 테이블만 참조해야 하며 그룹화를 사용하지 않거나주문 기준). 단순히 업데이트할 수 없는 커서가 작동할 수도 있습니다. 플랜 선택 세부 사항에 따라 그렇지 않을 수도 있습니다. 그래서 최악의 경우, 응용 프로그램이 테스트 중에 작동한 다음 생산에 실패했습니다.

사용하지 않는 주된 이유용 업데이트함께현재 위치 OF커서를 스크롤할 수 있어야 하거나 후속 업데이트에 민감하지 않습니다(즉, 이전 데이터를 계속 표시합니다). 이것이 요구사항이라면, 위에 표시된 주의 사항에 주의하세요.

SQL 표준은 삽입된 젠 토토에 대해서만 규정합니다.SQL.PostgreSQL서버가 구현하지 않음열기커서에 대한 명령문; 커서는 젠 토토되면 공개된 것으로 간주됩니다. 그러나ECPG,에 대한 Embedded SQL 전처리기포스트그레SQL, 지원 다음과 관련된 표준 SQL 커서 규칙을 포함합니다.젠 토토그리고열기문장.

다음을 쿼리하여 사용 가능한 모든 커서를 볼 수 있습니다.pg_cursors시스템 뷰.

커서를 젠 토토하려면:

영화에서 선택 *에 대한 liahona 커서 젠 토토;

참조PostgreSQL : 문서 : 8.4 : 범퍼카 토토더 보기 젠 토토 사용법의 예.

호환성

SQL 표준은 구현에 따라 다르다고 말합니다. 커서가 동시 업데이트에 민감한지 여부 기본적으로 기본 데이터입니다. 에서PostgreSQL, 커서는 다음과 같이 둔감합니다. 기본값이며 다음을 지정하여 민감하게 만들 수 있습니다.업데이트용. 다른 제품도 작동할 수 있음 다르게.

SQL 표준은 삽입된 커서만 허용합니다.SQL및 모듈에서.PostgreSQL커서를 다음과 같이 허용합니다. 대화형으로 사용됩니다.

바이너리 커서는 aPostgreSQL확장.