모든 윈 토토 명령은 Embedded 윈 토토 애플리케이션 내에서 실행될 수 있습니다. 다음은 이를 수행하는 방법에 대한 몇 가지 예입니다.
테이블 생성 중:
EXEC 윈 토토 CREATE TABLE foo(숫자 정수, ASCII 문자(16)); EXEC 윈 토토 CREATE UNIQUE INDEX num1 ON foo(숫자); EXEC 윈 토토 커밋;
행 삽입 중:
EXEC 윈 토토 INSERT INTO foo(숫자, ascii) VALUES(9999, 'doodad'); EXEC 윈 토토 커밋;
행 삭제 중:
EXEC 윈 토토 DELETE FROM foo WHERE 번호 = 9999; EXEC 윈 토토 커밋;
업데이트:
EXEC 윈 토토 업데이트 foo
SET ascii = 'foobar'
어디에서 숫자 = 9999;
EXEC 윈 토토 커밋;
선택단일 결과 행을 반환하는 문은 다음을 사용하여 실행할 수도 있습니다.EXEC 윈 토토직접. 여러 행이 포함된 결과 집합을 처리하려면 애플리케이션에서 커서를 사용해야 합니다. 참조섹션 34.3.2아래. (특별한 경우로 애플리케이션은 한 번에 여러 행을 배열 호스트 변수로 가져올 수 있습니다. 참조섹션 34.4.4.3.1.)
단일 행 선택:
EXEC 윈 토토 SELECT foo INTO :FooBar FROM table1 WHERE ascii = 'doodad';
또한 다음을 사용하여 구성 매개변수를 검색할 수 있습니다.표시명령:
EXEC 윈 토토 SHOW search_path INTO :var;
양식의 토큰:아르호스트 변수, 즉 C 프로그램의 변수를 참조합니다. 이에 대한 설명은PostgreSQL : 문서 : 17 : 34.4. 호스트 사설 토토 사용.뭔가
여러 행을 포함하는 결과 세트를 검색하려면 응용프로그램이 커서를 선언하고 커서에서 각 행을 가져와야 합니다. 커서를 사용하는 단계는 커서를 선언하고, 열고, 커서에서 행을 가져오고, 반복하고, 마지막으로 닫는 것입니다.
커서를 사용하여 선택:
EXEC 윈 토토 DECLARE foo_bar CURSOR FOR
번호 선택, foo에서 ASCII
ASCII로 주문;
EXEC 윈 토토 OPEN foo_bar;
EXEC 윈 토토 FETCH foo_bar INTO :FooBar, DooDad;
...
EXEC 윈 토토 CLOSE foo_bar;
EXEC 윈 토토 커밋;
커서 선언에 대한 자세한 내용은 참조PostgreSQL : 문서 : 17 : 사설 토토; 커서에서 행을 가져오는 방법에 대한 자세한 내용은 다음을 참조하세요.가져오기.
ECPG선언명령은 실제로 명령문이 Postgre윈 토토 백엔드로 전송되도록 하지 않습니다. 커서가 백엔드에서 열립니다(백엔드의선언명령)을 실행하는 시점에열기명령이 실행됩니다.
기본 모드에서 명령문은 다음 경우에만 커밋됩니다.EXEC 윈 토토 커밋발행되었습니다. Embedded 윈 토토 인터페이스는 트랜잭션의 자동 커밋도 지원합니다(p윈 토토의 기본 동작)을 통해-t명령줄 옵션ecpg(참조ecpg) 또는 다음을 통해EXEC 윈 토토 자동 커밋을 ON으로 설정문장. 자동 커밋 모드에서는 각 명령이 명시적인 트랜잭션 블록 내에 있지 않는 한 자동으로 커밋됩니다. 이 모드는 다음을 사용하여 명시적으로 끌 수 있습니다.EXEC 윈 토토이 자동 커밋을 OFF로 설정함.
다음 트랜잭션 관리 명령을 사용할 수 있습니다:
EXEC 윈 토토 커밋 #진행 중인 트랜잭션을 커밋합니다.
EXEC 윈 토토 롤백 #진행 중인 트랜잭션을 롤백합니다.
EXEC 윈 토토 트랜잭션 준비 transaction_id #2단계 커밋을 위해 현재 트랜잭션을 준비합니다.
EXEC 윈 토토 커밋 준비됨 transaction_id #준비된 상태의 트랜잭션을 커밋합니다.
EXEC 윈 토토 롤백 준비됨 transaction_id #준비된 상태의 트랜잭션을 롤백합니다.
EXEC 윈 토토 자동 커밋을 ON으로 설정 #자동 커밋 모드를 활성화합니다.
EXEC 윈 토토이 자동 커밋을 OFF로 설정함 #자동 커밋 모드를 비활성화합니다. 이것이 기본값입니다.
윈 토토 문에 전달될 값을 컴파일 타임에 알 수 없거나 동일한 문이 여러 번 사용되는 경우 준비된 문이 유용할 수 있습니다.
명령문은 다음 명령을 사용하여 준비되었습니다.준비. 아직 알려지지 않은 값의 경우 자리표시자를 사용하세요.“?”:
EXEC 윈 토토 PREPARE stmt1 FROM "SELECT oid, datname FROM pg_database WHERE oid = ?";
문이 단일 행을 반환하는 경우 응용 프로그램은 다음을 호출할 수 있습니다.실행이후준비문을 실행하고 자리표시자의 실제 값을 다음과 함께 제공합니다.사용 중절:
EXEC 윈 토토 EXECUTE stmt1 INTO :dboid, :dbname USING 1;
문이 여러 행을 반환하는 경우 응용 프로그램은 준비된 문을 기반으로 선언된 커서를 사용할 수 있습니다. 입력 매개변수를 바인딩하려면 커서를 다음과 같이 열어야 합니다.사용 중절:
EXEC 윈 토토 PREPARE stmt1 FROM "SELECT oid,datname FROM pg_database WHERE oid ?";
EXEC 윈 토토 DECLARE foo_bar CURSOR FOR stmt1;
/* 결과 집합의 끝에 도달하면 while 루프에서 빠져나옵니다 */
EXEC 윈 토토을 찾을 수 없을 때 중단하십시오.
EXEC 윈 토토 OPEN foo_bar USING 100;
...
동안 (1)
EXEC 윈 토토 FETCH NEXT FROM FROM INTO :dboid, :dbname;
...
준비된 명령문이 더 이상 필요하지 않으면 할당을 해제해야 합니다.
EXEC 윈 토토 DEALLOCATE PREPARE이름;
자세한 내용은준비, 참조PostgreSQL : 문서 : 17 : 스포츠 토토. 또한 참조하세요Postgre스포츠 토토 : 문서 : 17 : 34.5. 동적 스포츠 토토자리표시자 및 입력 매개변수 사용에 대한 자세한 내용을 확인하세요.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.