이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 32.10. 토토 사이트 추천 결과 토토 사이트 추천 결과과 토토 사이트 추천 결과 토토 사이트 추천 결과버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

33.9. 와 토토 사이트 추천 기능COPY명령

theCOPY명령에서postgresql|libpq. 이 섹션에 설명 된 기능은 복사 토토 사이트 추천를 공급하거나 소비하여 응용 프로그램 이이 기능을 활용할 수 있도록합니다.

전체 프로세스는 응용 프로그램이 먼저 SQL을 발행한다는 것입니다.COPYPQEXEC또는 동등한 함수 중 하나. 이것에 대한 응답 (명령에 오류가없는 경우)은 A입니다.pgresult상태 코드를 가진 객체pgres_copy_out또는pgres_copy_in(지정된 사본 방향에 따라 다름). 그런 다음 응용 프로그램은이 섹션의 기능을 사용하여 토토 사이트 추천 행을 수신하거나 전송해야합니다. 토토 사이트 추천 전송이 완료되면 다른pgresult객체는 전송의 성공 또는 실패를 나타 내기 위해 반환됩니다. 그 상태는pgres_command_ok성공 또는pgres_fatal_error문제가 발생한 경우. 이 시점에서 추가 SQL 명령은를 통해 발행 될 수 있습니다.PQEXEC. ( 동안 동일한 연결을 사용하여 다른 SQL 명령을 실행할 수 없습니다COPY운영 진행 중입니다.)

if aCOPY명령은를 통해 발행됩니다.PQEXEC추가 명령을 포함 할 수있는 문자열에서 응용 프로그램은 계속해서 결과를 가져와야합니다pqgetresult완료 후COPY시퀀스. 만pqgetresult반환NULL확실합니까PQEXEC명령 문자열이 완료되었으며 더 많은 명령을 발행하는 것이 안전합니다.

이 섹션의 기능은 결과 상태를 얻은 후에 만 ​​실행해야합니다.pgres_copy_out또는pgres_copy_inFromPQEXEC또는pqgetresult.

apgresult객체이 상태 값 중 하나를 갖는 개체에 대한 추가 토토 사이트 추천가 있습니다COPY시작중인 작동. 이 추가 토토 사이트 추천는 쿼리 결과와 관련하여 사용되는 기능을 사용하여 사용할 수 있습니다.

pqnfields

복사 할 열 (필드) 수를 반환합니다.

pqbinaryTuples

0은 전체 사본 형식이 텍스트임을 나타냅니다 (줄로 분리 된 행, 분리기 문자로 분리 된 열). 도 1은 전체 사본 형식이 바이너리임을 나타냅니다. 보다COPY자세한 내용은

pqfformat

사본 조작의 각 열과 관련된 형식 코드 (텍스트의 경우 0, 이진의 경우 1)를 반환합니다. 전체 사본 형식이 텍스트 인 경우 콜럼 당 형식 코드는 항상 0이되지만 이진 형식은 텍스트와 이진 열 모두를 지원할 수 있습니다. (그러나 현재의 구현시COPY따라서 컬럼 당 형식은 항상 전체 형식과 일치합니다.)

note

이 추가 토토 사이트 추천 값은 프로토콜 3.0을 사용할 때만 사용할 수 있습니다. 프로토콜 2.0을 사용하면이 모든 기능이 0을 반환합니다.

33.9.1. 전송 기능COPY토토 사이트 추천

이 기능은 동안 토토 사이트 추천를 보내는 데 사용됩니다.stdin에서 복사. 연결이 없을 때 호출하면 실패합니다copy_inState.

pqputcopydata

기간 동안 서버로 토토 사이트 추천를 보냅니다copy_inState.

int pqputcopydata (pgconn *conn,
                  const char *버퍼,
                  int nbytes);

전송COPY지정된 토토 사이트 추천버퍼, 길이nbytes, 서버. 결과는 토토 사이트 추천를 대기하는 경우 1, 전체 버퍼로 인해 대기열이없는 경우 0 (비 블로킹 모드에서만 발생) 또는 오류가 발생한 경우 -1입니다. (사용PQERRORMESSAGE반환 값이 -1 인 경우 세부 사항을 검색합니다. 값이 0 인 경우 쓰기 준비를 기다리고 다시 시도하십시오.)

응용 프로그램은를 나눌 수 있습니다.COPY편리한 크기의 버퍼로드로의 토토 사이트 추천 스트림. 버퍼-로드 경계는 보낼 때 의미 론적 의미가 없습니다. 토토 사이트 추천 스트림의 내용은에서 기대하는 토토 사이트 추천 형식과 일치해야합니다.COPY명령; 보다COPY자세한 내용.

PQPUTCOPYEND

기간 동안 서버에 토토 사이트 추천 종료 표시를 보냅니다copy_inState.

int pqputcopyend (pgconn *conn,
                 const char *errormsg);

종료copy_in성공적으로 작동하는 경우errormsgisNULL. 만약에errormsgNULL그런 다음COPY|errormsg오류 메시지로 사용됩니다. (서버가 이미 실패했을 수 있으므로이 정확한 오류 메시지가 서버에서 돌아올 것이라고 가정해서는 안됩니다copy자체 이유로. 또한 Pre-3.0 protocol 연결을 사용할 때 강제 고장 옵션이 작동하지 않습니다.)

종료 메시지가 전송 된 경우 결과는 1입니다. 또는 비 차단 모드에서는 종료 메시지가 성공적으로 대기되었음을 나타낼 수 있습니다. (차단 모드에서 토토 사이트 추천가 전송되었는지 확인하려면 다음에 쓰기 준비를 기다려야합니다.pqflush, 0을 반환 할 때까지 반복합니다.) Zero는 전체 버퍼로 인해 함수가 종료 메시지를 대기열 할 수 없음을 나타냅니다. 이것은 비 차단 모드에서만 발생합니다. (이 경우 쓰기 준비를 기다리고를 시도하십시오.PQPUTCOPYEND다시 전화하십시오.) 하드 오류가 발생하면 -1이 반환됩니다. 사용할 수 있습니다PQERRORMESSAGE세부 사항을 검색하려면

성공적으로 전화 한 후PQPUTCOPYEND, Callpqgetresult의 최종 결과 상태를 얻으려면COPY명령. 이 결과가 일반적인 방식으로 사용할 수 있기를 기다릴 수 있습니다. 그런 다음 정상 작동으로 돌아갑니다.

33.9.2. 수신 기능COPY토토 사이트 추천

이 기능은 동안 토토 사이트 추천를 수신하는 데 사용됩니다.stdout에 복사. 연결이 없을 때 호출하면 실패합니다Copy_outState.

PQGETCOPYDATA

기간 동안 서버로부터 토토 사이트 추천 수신Copy_outState.

int pqgetcopydata (pgconn *conn,
                  char ** 버퍼,
                  int async);

a 동안 서버에서 다른 행의 토토 사이트 추천 행을 얻으려고 시도합니다.COPY. 토토 사이트 추천는 항상 한 번에 하나의 토토 사이트 추천 행으로 반환됩니다. 부분 행만 사용할 수 있으면 반환되지 않습니다. 토토 사이트 추천 행을 성공적으로 반환하려면 토토 사이트 추천를 보유하기 위해 메모리 청크를 할당하는 것이 포함됩니다. 그만큼버퍼매개 변수는 비이어야합니다NULL. *버퍼할당 된 메모리를 가리 키거나NULL버퍼가 반환되지 않은 경우. 비NULL결과 버퍼를 사용하여 해제해야PQFREEMEM더 이상 필요하지 않은 경우

행이 성공적으로 반환되면 반환 값은 행의 토토 사이트 추천 바이트 수입니다 (이것은 항상 0보다 클 것입니다). 반환 된 문자열은 항상 무효화되지만 텍스트에만 유용 할 것입니다copy. 0의 결과는임을 나타냅니다.COPY아직 진행 중이지만 아직 사용 가능한 행이 없습니다 (이것은 가능합니다.async사실). -1의 결과는임을 나타냅니다.COPY완료되었습니다. -2의 결과는 오류가 발생했음을 나타냅니다 (ConsultPQERRORMESSAGE이유가 있습니다).

언제asynctrue (제로가 아님),pqgetCopyData입력 대기를 차단하지 않습니다. 이면 0을 반환합니다.COPY아직 진행 중이지만 완전한 행을 사용할 수 없습니다. (이 경우 읽기 준비를 기다린 다음 전화pqconsumeInput호출 전pqgetCopyData다시.) 언제async거짓 (0),pqgetCopyData토토 사이트 추천를 사용할 수 있거나 작업이 완료 될 때까지 차단됩니다.

이후pqgetCopyDatareturns -1, callpqgetresult의 최종 결과 상태를 얻으려면COPY명령. 이 결과가 일반적인 방식으로 사용할 수 있기를 기다릴 수 있습니다. 그런 다음 정상 작동으로 돌아갑니다.

33.9.3. 에 대한 쓸모없는 기능COPY

이 기능은 오래된 취급 방법을 나타냅니다COPY. 그들은 여전히 ​​작동하지만 오류 처리가 열악하고, 토토 사이트 추천 종료를 감지하는 불편한 방법, 이진 또는 비 차단 전송에 대한 지원 부족으로 인해 더 이상 사용되지 않습니다.

pqgetline

Newline-Terminated 문자 라인 (서버에서 전송)을 버퍼 크기로 읽습니다길이.

int pqgetline (pgconn *conn,
              char *버퍼,
              int 길이);

이 토토 사이트 추천는 최대까지 복사합니다.길이-1 문자 버퍼에 문자를 사용하고 종단 신축을 제로 바이트로 변환합니다.pqgetline반환eof입력 끝에서 전체 라인을 읽은 경우 0, 버퍼가 가득 찼지만 종료 신생을 아직 읽지 않은 경우 0..

신청서는 새 라인이 두 문자로 구성되어 있는지 확인해야합니다.\., 서버가의 결과 전송을 마쳤음을 나타냅니다.COPY명령. 응용 프로그램이 이상의 줄을받을 수있는 경우길이-1 문자 길이,\.라인을 올바르게 (예를 들어, 터미네이터 라인의 긴 토토 사이트 추천 라인의 끝을 오해하지 마십시오)..

PQGETLINEASYNC

행을 읽는다COPY토토 사이트 추천 (서버에서 전송) 차단없이 버퍼로 전송합니다.

int pqgetLineAneCync (pgconn *conn,
                   char *버퍼,
                   int bufsize);

이 기능은와 유사합니다.pqgetline, 그러나 읽어야하는 응용 프로그램에서 사용할 수 있습니다COPY토토 사이트 추천 비동기 적으로, 즉 차단하지 않고. 발행COPY명령 및 apgres_copy_out응답, 신청서가 호출해야합니다pqconsumeInputandPQGETLINEASYNC토토 사이트 추천 종료 신호가 감지 될 때까지.

와 달리pqgetline,이 함수는 토토 사이트 추천 끝 감지에 대한 책임이 있습니다.

각 호출에서전체 토토 사이트 추천 행을 사용할 수있는 경우 토토 사이트 추천를 반환합니다libpq의 입력 버퍼. 그렇지 않으면 나머지 행이 도착할 때까지 토토 사이트 추천가 반환되지 않습니다. 코피 종단 토토 사이트 추천 마커가 인식 된 경우 함수는 -1 또는 토토 사이트 추천를 사용할 수없는 경우 0 또는 반환 된 토토 사이트 추천의 바이트 수를 제공하는 양수를 반환합니다. -1이 반환되면 발신자는 다음 호출PQENDCOPY, 그리고 정상 처리로 돌아갑니다.

반환 된 토토 사이트 추천는 토토 사이트 추천 열 경계를 넘어 확장되지 않습니다. 가능하면 전체 행이 한 번에 반환됩니다. 그러나 발신자가 제공하는 버퍼가 서버에서 전송하는 행을 유지하기에는 너무 작아서 부분 토토 사이트 추천 행이 반환됩니다. 텍스트 토토 사이트 추천를 사용하면 마지막 반환 바이트가인지 테스트하여 감지 할 수 있습니다.\ n(이진에서COPY, 실제 구문 분석COPY동등한 결정을하기 위해서는 토토 사이트 추천 형식이 필요합니다.) 반환 된 문자열은 무효가 끝나지 않습니다. (종료 Null을 추가하려면 A를 통과하십시오.bufsize실제로 사용 가능한 방보다 작은 하나입니다.)

pqputline

서버에 null 종결 문자열을 보냅니다. OK이고 0을 반환합니다.eof문자열을 보낼 수없는 경우.

int pqputline (pgconn *conn,
              const char *string);

theCOPY일련의 통화로 전송 된 토토 사이트 추천 스트림pqputline|pqgetLineAnsync, 응용 프로그램이 정확히 하나의 토토 사이트 추천 행을 보낼 의무가 없다는 점을 제외하고pqputline전화; 통화 당 부분 줄 또는 여러 줄을 보내는 것은 괜찮습니다.

Note

PostgreSQL프로토콜 3.0, 응용 프로그램이 두 문자를 명시 적으로 보내야 할 필요가있었습니다\.서버에 보내는 것을 나타내는 최종 라인으로COPY토토 사이트 추천. 이것은 여전히 ​​작동하지만 감가 상각되며의 특별한 의미는\.향후 릴리스에서 제거 될 수 있습니다. 전화하기에 충분합니다PQENDCOPY실제 토토 사이트 추천를 보낸 후.

PQPUTNBYTES

서버로 널리 터진 문자열을 보냅니다. OK이고 0을 반환합니다.eof문자열을 보낼 수없는 경우.

int pqputnbytes (pgconn *conn,
                const char *버퍼,
                int nbytes);

이것은 똑같습니다pqputline-보내기 할 바이트 수가 직접 지정되므로 토토 사이트 추천 버퍼를 무효화 할 필요가 없다는 점을 제외하고. 이진 토토 사이트 추천를 보낼 때이 절차를 사용하십시오.

PQENDCOPY

서버와 동기화됩니다.

int pqendcopy (pgconn *conn);

이 함수는 서버가 복사를 마칠 때까지 기다립니다. 마지막 문자열이를 사용하여 서버로 전송 될 때 발행해야합니다.pqputline또는 마지막 문자열이 서버에서 사용하여 수신 된 경우pqgetline. 발행해야합니다. 그렇지 않으면 서버가 얻을 것입니다동기화클라이언트와. 이 기능에서 돌아 오면 서버는 다음 SQL 명령을 수신 할 준비가되었습니다. 성공적인 완료시 반환 값은 0이지만 0이 아닌 그렇지 않으면 0입니다. (사용PQERRORMESSAGE반환 값이 0이 아닌 경우 세부 사항을 검색하려면.)

사용시pqgetresult, 응용 프로그램은 a에 응답해야합니다.pgres_copy_out실행하여 결과pqgetline반복적으로PQENDCOPY터미네이터 라인이 보입니다. 그런 다음로 돌아 가야합니다.pqgetresult루프까지pqgetresult널 포인터를 반환합니다. 마찬가지로 Apgres_copy_in결과는 일련의 일련의 처리입니다.pqputline통화 후PQENDCOPY,로 돌아갑니다pqgetresult루프. 이 계약은 A를 보장합니다.COPY일련의 명령SQL명령이 올바르게 실행됩니다.

이전 응용 프로그램이 a를 제출할 가능성이 높습니다COPYviaPQEXEC그리고 거래가 이후에 이루어 졌다고 가정합니다PQENDCOPY. 이것은 만 올바르게 작동합니다.COPY유일한SQL명령 문자열의 명령.