SQL에 대한 close 고려사항
SQL의 컨텍스트에서 EGL close 문은 open 또는 get...forUpdate 문으로 작성한 결과 세트를 제거합니다.
다음과 같은 경우에 EGL은 결과 세트를 자동으로 제거합니다.
- 일련의 위치 get 문(예: get next)은 noRecordFound 조건이 발생하면 종료됩니다.
- 단일 행을 읽는 경우 forUpdate와 singleRow가 둘 다 옵션으로 지정되지 않으면 EGL은 SQL 레코드에 대해 get 문을 실행합니다.
- EGL은 get...forUpdate 문으로 연 커서를 사용하는 replace 또는 delete 문을 실행합니다.
- EGL은 열린 커서와 연관된 레코드에 대해 open 또는 get 문 처리를 시작합니다. 커서는 다른 처리가 발생하기 전에 닫힙니다.
- 프로그램이 sysLib.commit()를 실행하지만 open 문에 대한 관계에서 설명한 것처럼 hold 옵션이 영향을 미치는 경우 커서가 닫히지 않습니다.
- 프로그램이 forEach 루프의 끝에 도달합니다.
구문
구문 다이어그램에 대해서는 코어 close 문을 참조하십시오.
예제
다음은 SQL close 문의 예제입니다.
close myCustomer;
호환성
각 관계형 데이터베이스 관리 시스템(RDBMS)에는 SQL의 자체 버전이 있습니다. 모든 구현에서 모든 SQL 명령을 사용할 수 있는 것은 아닙니다. 임베디드 SQL을 코딩하기 전에 RDBMS에 대한 문서를 참조하십시오.
다음 표는 close 문과 SQL에 대한 호환성 고려사항을 설명합니다.
| 플랫폼 | 문제 |
|---|---|
| CICS® | converse 문이 세그먼트화 모드로 실행될 때 EGL은 모든 결과 세트를 닫습니다(hold 옵션으로 결과 세트가 열린 경우에도). |
| IMS/VS | converse 문이 실행될 때마다 EGL은 모든 결과 세트를 닫습니다(hold 옵션으로 결과 세트가 열린 경우에도). (IMS/VS 프로그램은 항상 세그먼트화됩니다.) |