이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다토토 결과 PostgreSQL : 문서 : 17 : 선언버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

선언

이름

선언-커서 정의

시놉시스

선언이름[바이러스] [무감각] [[아니요] 스크롤]
    무지개 토토 [with |  hold]없이쿼리

설명

선언사용자가 생성 할 수 있습니다 커서. 더 큰 쿼리에서 시간을 내십시오. 커서가 만들어지면 행이 있습니다 사용하여 가져 왔습니다토토 : 문서 : 9.3 : Fetch.

참고 :이 페이지는 SQL에서 커서의 사용법을 설명합니다 명령 수준. a 내부의 커서를 사용하려는 경우pl/pgsql함수, 규칙은입니다 다른 - 참조PostgreSQL : 문서 : 9.3 : 토토 베이.

매개 변수

이름

생성 될 커서의 이름.

BINAGE

무지개 토토가 텍스트가 아닌 이진으로 데이터를 반환합니다. 체재.

무감각

| 무지개 토토에서 검색된 데이터가 있어야 함을 나타냅니다 무지개 토토의 기본 테이블 업데이트에 영향을받지 않습니다. 무지개 토토가 만든 후에 발생합니다. 안에PostgreSQL, 이것은 기본 동작입니다. 그래서 이 핵심 단어는 영향을 미치지 않으며 호환성 만 허용됩니다. SQL 표준으로.

스크롤
스크롤 없음

스크롤커서를 지정합니다 비 순위행 방식으로 행을 검색하는 데 사용됩니다 (예 : 뒤로). 쿼리 실행 계획의 복잡성에 따라 지정스크롤a 쿼리의 실행 시간에 대한 성능 페널티.스크롤 없음커서를 사용할 수 없음을 지정합니다 비 순응적인 방식으로 행을 검색합니다. 기본값은 다음과 같습니다 경우에 따라 스크롤을 허용합니다. 이것은 지정하는 것과 동일하지 않습니다스크롤. 보다노트자세한 내용.

with Hold
홀드없이

with Hold무지개 토토가 할 수 있는지 지정합니다 거래 후에도 계속 사용됩니다. 성공적으로 커밋.hold트랜잭션 외부에서 무지개 토토를 사용할 수 없음을 지정합니다. 그것은 그것을 만들었습니다. 둘 다홀드없이NORwith hold지정되어 있습니다.홀드없이기본값입니다.

쿼리

aselect또는행을 제공 할 명령 무지개 토토에 의해 반환됩니다.

키워드BINAGE, 무감각스크롤can 어떤 순서로든 나타납니다.

노트

일반 무지개 토토 텍스트 형식으로 데이터를 반환합니다.select생산할 것입니다. 그만큼BINAGE옵션은 커서가해야한다고 지정합니다 이진 형식의 데이터를 반환합니다. 이것은 전환 노력을 줄입니다 더 많은 프로그래머 노력 비용으로 서버와 클라이언트 모두 플랫폼 의존적 이진 데이터 형식을 다루기 위해. 예를 들어, 쿼리가 정수 열에서 값을 반환하면 문자열 얻기1기본 무지개 토토와 함께 이진 무지개 토토를 사용하면 4 바이트 필드를 얻을 수 있습니다. 값의 내부 표현을 포함합니다 (Big-Endian 바이트 순서).

이진 무지개 토토를 신중하게 사용해야합니다. 많은 응용 프로그램, 포함PSQL, 준비되지 않았습니다 이진 무지개 토토를 처리하고 데이터가 텍스트로 돌아올 것으로 기대합니다. 체재.

참고 :클라이언트 응용 프로그램이 사용될 때"확장 쿼리"A 발행 프로토콜Fetch명령, BIND 프로토콜 메시지가 지정됩니다 데이터를 텍스트 또는 이진 형식으로 검색할지 여부. 이것 선택은 커서가 정의되는 방식을 무시합니다. 의 개념 확장 쿼리를 사용할 때는 이진 커서가 더 이상 사용되지 않습니다. 프로토콜 - 모든 커서는 텍스트 또는 이진으로 취급 될 수 있습니다.

그렇지 않으면with Hold지정되어 있습니다 이 명령에 의해 생성 된 커서는 현재 내에서만 사용할 수 있습니다. 거래. 따라서,선언없음with hold는 거래 밖에서 쓸모가 없습니다 블록 : 무지개 토토는 성명. 그러므로PostgreSQL해당 명령이 거래 외부에서 사용되는 경우 오류를보고합니다. 차단하다. 사용롤 토토 : 문서 : 9.3 : 시작and커밋(또는롤백) 거래를 정의하려면 차단하다.

ifwith Hold지정되어 있습니다 무지개 토토를 생성 한 트랜잭션은 성공적으로 저지른 것입니다 Cursor는 후속 거래로 계속 액세스 할 수 있습니다. 같은 세션. (그러나 생성 트랜잭션이 중단되면 무지개 토토가 제거되었습니다.)로 만든 무지개 토토잡고 있다명시 적으로 닫혀닫기명령이 발행되거나 세션이 종료됩니다. 현재에서 구현, 보류 커서로 표시되는 행이 복사됩니다. 임시 파일 또는 메모리 영역으로 사용 가능하게 유지 후속 거래의 경우.

with Hold쿼리 포함업데이트또는공유.

the스크롤옵션을 지정해야합니다 뒤로 가져 오는 데 사용될 커서를 정의 할 때. 이것 SQL 표준에 의해 요구됩니다. 그러나 호환성 이전 버전,PostgreSQL의지 없이 후진 가져 오기 허용스크롤, if 커서의 쿼리 계획은 추가 오버 헤드가 없을 정도로 간단합니다. 그것을 지원하기 위해 필요했습니다. 그러나 응용 프로그램 개발자에게는 권장됩니다 그렇지 않은 커서에서 후진 페치를 사용하는 데 의존하지 마십시오. 로 만들어졌습니다.스크롤. 만약에스크롤 없음지정된 다음 뒤로 페치가 있습니다 어쨌든 허용되지 않습니다.

쿼리에 포함될 때 뒤로 페치가 허용되지 않습니다업데이트또는공유하다; 그러므로스크롤그렇지 않을 수 있습니다 이 경우 지정됩니다.

주의

스크롤 가능 및with hold무지개 토토 5 월 휘발성 기능을 호출하면 예기치 않은 결과를 제공합니다 (PostgreSQL : 문서 : 9.3 : 토토 사이트 변동성 범주). 언제 a 이전에 가져온 행이 다시 가져 오면 기능이있을 수 있습니다 다시 실행되어 아마도 첫 번째 결과와 다른 결과를 초래할 수 있습니다 시간. 그러한 경우에 대한 한 가지 해결 방법은 커서를 선언하는 것입니다with Hold거래를 커밋하십시오 행을 읽기 전에. 이것은 전체 출력을 강요합니다 커서의 임시 저장소에서 구체화 할 수 있으므로 휘발성 함수는 각 행마다 정확히 한 번 실행됩니다.

커서의 쿼리에 포함 된 경우for 업데이트또는공유행이 처음 가져올 때, 같은 방식으로 행이 잠겨 있습니다. 일반select명령 이 옵션. 또한 반환 된 행이 가장 많습니다 최신 버전; 따라서 이러한 옵션은 동등한 것을 제공합니다 SQL 표준이 a 호출하는 것"민감한 무지개 토토". (지정무감각함께업데이트또는공유오류입니다.)

주의

일반적으로 사용하는 것이 좋습니다업데이트무지개 토토가 사용하려는 경우업데이트 ... 현재 위치또는삭제 ... 현재의 위치. 사용업데이트다른 세션이 변경되는 것을 방지합니다 그들이 가져온 시간과 시간 사이의 줄 업데이트. 없이업데이트, 후속현재의 전류명령은 없을 것입니다 효과 무지개 토토가 생성 된 이후 행이 변경된 경우 효과.

사용해야 할 또 다른 이유업데이트is 그것 없이는, 후속현재 위치 의커서 쿼리가 SQL을 충족하지 않으면 실패 할 수 있습니다. 표준의 규칙"간단히 업데이트 가능한 "(특히 무지개 토토는 단지 참조해야합니다 하나의 테이블과 그룹화를 사용하지 않거나주문 에 의해). 단순히 업데이트 할 수없는 커서는 작동 할 수 있습니다 계획 선택 세부 사항에 따라 다르지 않을 수 있습니다. 그래서 최악의 경우 응용 프로그램은 테스트에서 작동 한 다음 생산에 실패 할 수 있습니다. 만약에업데이트지정되어 있으며 커서는입니다 업데이트 가능한 보장.

사용하지 않는 주된 이유업데이트with전류의 위치필요한 경우입니다 스크롤 가능하거나 후속에 무감각 한 커서 업데이트 (즉, 이전 데이터를 계속 표시합니다). 이것이 a 요구 사항, 위에 표시된 경고에 가까운주의를 기울이십시오.

SQL 표준은 임베디드의 무지개 토토에 대한 조항 만 제공SQL. 그만큼postgresql서버가 구현되지 않습니다Open커서에 대한 진술; 커서입니다 선언 될 때 열려있는 것으로 간주됩니다. 하지만,ECPG, 임베디드 SQL 사전 처리기를위한PostgreSQL, 표준을 지원합니다 SQL 커서 컨벤션 (관련된 것)을 포함한선언andOpen진술.

쿼리를 통해 사용 가능한 모든 커서를 볼 수 있습니다pg_cursors시스템보기

예제

커서를 선언하려면 :

Select * From From From From Plims에 대한 Liahona 커서 선언;

참조토토 : 문서 : 9.3 : Fetch더 많은 예를 보려면 무지개 토토 사용.

호환성

SQL 표준은 그것이 구현에 따라 다르다고 말합니다 커서가 동시 업데이트에 민감한 지 여부 기본적으로 기본 데이터. 안에PostgreSQL, 무지개 토토는 둔감합니다 기본값, 지정하여 민감하게 만들 수 있습니다업데이트. 다른 제품은 다르게 작동 할 수 있습니다.

SQL 표준은 내장 된 상태에서만 커서를 허용합니다SQL및 모듈.PostgreSQL무지개 토토를 사용할 수 있습니다 대화식.

이진 무지개 토토는입니다.PostgreSQL확장.