dblink_get_result수집
이전에 전송된 비동기 쿼리의 결과dblink_send_query. 쿼리가 다음과 같은 경우
아직 완료되지 않았습니다.dblink_get_result그때까지 기다리겠습니다.
사용할 연결의 이름입니다.
참이면(생략 시 기본값) 오류가 발생합니다. 연결의 원격 측에서 오류가 발생합니다. 로컬에서도 던져집니다. false인 경우 원격 오류는 다음과 같습니다. 로컬에서 NOTICE로 보고되었으며 함수는 no를 반환합니다. 행.
비동기 쿼리(즉, 행을 반환하는 SQL 문)의 경우,
이 함수는 쿼리에 의해 생성된 행을 반환합니다. 사용하려면
이 기능을 사용하려면 예상되는 세트를 지정해야 합니다.
열(이전에 설명한 대로)dlink.
비동기 명령의 경우(즉, SQL 문이 반환되지 않음) 행), 함수는 단일 텍스트가 포함된 단일 행을 반환합니다. 명령의 상태 문자열이 포함된 열입니다. 그것은 아직도 결과에 단일 텍스트가 포함되도록 지정하는 데 필요함 호출의 열발신절.
이 기능반드시만약 호출된다면dblink_send_query반환 1. 전송된 각 쿼리에 대해 한 번씩 호출되어야 하며,
빈 세트 결과를 얻기 위한 추가 시간
연결을 다시 사용할 수 있습니다.
사용 시dblink_send_query그리고dblink_get_result, dlink전체 원격 쿼리를 가져옵니다.
로컬 쿼리 프로세서에 반환하기 전에 결과를 반환합니다.
쿼리가 많은 수의 행을 반환하는 경우 다음과 같은 결과가 발생할 수 있습니다.
로컬 세션의 일시적인 메모리 팽창. 하는 것이 더 나을 수도 있습니다
다음을 사용하여 커서와 같은 쿼리를 엽니다.dblink_open그리고 관리 가능한 숫자를 가져옵니다
한 번에 여러 행. 또는 일반을 사용하세요.dblink(), 스풀링으로 인한 메모리 팽창 방지
큰 결과 세트를 디스크에 저장합니다.
contrib_regression=# SELECT dblink_connect('dtest1', 'dbname=contrib_regression');
dblink_connect
----------------
알았어
(1줄)
contrib_regression=# SELECT * FROM
contrib_regression-# dblink_send_query('dtest1', 'select * from foo where f1 < 3') AS t1;
t1
----
1
(1줄)
contrib_regression=# SELECT * FROM dblink_get_result('dtest1') AS t1(f1 int, f2 text, f3 text[]);
f1 | f2 | f3
----+------+------------
0 | | a0,b0,c0
1 | 비 | a1,b1,c1
2 | c | a2,b2,c2