GET DESCRIPTOR — SQL 설명자 영역에서 정보 가져오기
설명자 가져오기descriptor_name:c변수=descriptor_header_item[, ... ] 설명자 가져오기descriptor_name값열_번호:c변수=descriptor_item[, ... ]
설명자 가져오기SQL 설명자 영역에서 쿼리 결과 집합에 대한 정보를 검색하여 호스트 변수에 저장합니다. 설명자 영역은 일반적으로 다음을 사용하여 채워집니다.가져오기또는선택이 명령을 사용하여 정보를 호스트 언어 변수로 전송하기 전에.
이 명령에는 두 가지 형식이 있습니다. 첫 번째 형식은 설명자를 검색합니다.“헤더”항목은 결과 세트 전체에 적용됩니다. 한 가지 예는 행 개수입니다. 추가 매개변수로 열 번호가 필요한 두 번째 형식은 특정 열에 대한 정보를 검색합니다. 예는 열 이름과 실제 열 값입니다.
결과 세트의 열 수를 검색하는 예:
EXEC SQL GET DESCRIPTOR d :d_count = COUNT;
첫 번째 열의 데이터 길이를 검색하는 예:
EXEC SQL GET 설명자 d VALUE 1 :d_returned_octet_length = RETURNED_OCTET_LENGTH;
두 번째 열의 데이터 본문을 문자열로 검색하는 예:
EXEC SQL GET 설명자 d 값 2 :d_data = DATA;
다음은 전체 실행 절차의 예입니다.현재_데이터베이스() 선택;그리고 열 수, 열 데이터 길이 및 열 데이터를 표시합니다.
정수
메인(공허)
EXEC SQL 시작 선언 섹션;
int d_count;
char d_data[1024];
int d_returned_octet_length;
EXEC SQL END 선언 섹션;
EXEC SQL CONNECT TO testdb AS con1 USER testuser;
EXEC SQL SELECT pg_catalog.set_config('search_path', '', false); EXEC SQL 커밋;
EXEC SQL 할당 설명자 d;
/* 커서를 선언하고 열고 커서에 설명자를 할당합니다 */
EXEC SQL DECLARE cur CURSOR FOR SELECT current_database();
EXEC SQL OPEN cur;
EXEC SQL FETCH NEXT FROM FROM INTO SQL DESCRIPTOR d;
/* 전체 열 수 가져오기 */
EXEC SQL GET DESCRIPTOR d :d_count = COUNT;
printf("d_count = %d\n", d_count);
/* 반환된 열의 길이를 가져옵니다 */
EXEC SQL GET DESCRIPTOR d VALUE 1 :d_returned_octet_length = RETURNED_OCTET_LENGTH;
printf("d_returned_octet_length = %d\n", d_returned_octet_length);
/* 반환된 열을 문자열로 가져옵니다 */
EXEC SQL GET DESCRIPTOR d VALUE 1 :d_data = DATA;
printf("d_data = %s\n", d_data);
/* 닫기 */
EXEC SQL CLOSE cur;
EXEC SQL 커밋;
EXEC SQL DEALLOCATE 설명자 d;
EXEC SQL 모두 연결 해제;
0을 반환합니다.
예제가 실행되면 결과는 다음과 같습니다:
d_count = 1 d_returned_octet_length = 6 d_data = 테스트db
설명자 가져오기토토 베이 표준에 지정되어 있습니다.