SQL 테이블 데이터 검색
EGL을 사용하면 SQL 테이블, 보기 또는 결합의 정의로부터 SQL 레코드 필드를 작성할 수 있습니다.
SQL 테이블의 정의로부터 SQL 레코드 필드를 작성하려면 다음 작업을 수행하십시오.
- SQL 환경 설정을 적절히 설정했는지 확인하십시오. 세부사항은 SQL 검색에 대한 환경 설정의 설정의 내용을 참조하십시오.
- EGL에서 테이블 데이터를 검색하는 데 사용하는 연결인 기본 데이터베이스 연결을 설정하십시오.
- 을 클릭하십시오.
- EGL을 펼치고 SQL 데이터베이스 연결을 클릭하십시오.
- 연결 목록에서 데이터베이스 연결을 선택하거나 새 데이터베이스 연결을 작성하십시오. 연결 목록에서 선택되는 연결이 기본 데이터베이스 연결이 됩니다.
- 태스크를 수행할 위치를 결정하십시오.
- 각 SQL 레코드를 개발할 때와 같은 EGL 소스 파일, 또는
- SQL 레코드가 이미 있는 경우 태스크 수행이 더 쉬운 아웃라인 보기
- EGL 소스 파일에서 작업하는 경우에는 이대로 진행하십시오. 아웃라인 보기에서 작업하는 경우에는 다음 단계로 건너뛰십시오.
- SQL 레코드가 없는 경우에는 이를 작성하십시오.
- R을 입력하고, Ctrl+Space를 누른 후 컨텐츠 지원 목록에서 SQL 테이블 항목 중 하나(일반적으로 테이블 이름이 있는 SQL 레코드)를 선택하십시오.
- SQL 레코드의 이름을 입력하고 Tab을 누른 후 테이블 이름, 쉼표로 구분된 테이블 목록 또는 보기의 별명을 입력하십시오.
다음 예제에서와 같이 최소한의 컨텐츠를 입력하여 SQL 레코드를 작성할 수도 있습니다. 이는 레코드의 이름이 테이블의 이름과 동일한 경우에 적합합니다.Record myTable type sqlRecord end - 레코드 내 임의의 위치를 마우스 오른쪽 단추로 클릭하십시오.
- 을 클릭하십시오.
- SQL 레코드가 없는 경우에는 이를 작성하십시오.
- 아웃라인 보기에서 작업하는 경우에는 SQL 레코드의 항목을 마우스 오른쪽 단추로 클릭하고 SQL 검색을 클릭하십시오.
참고: DB2® 조건 WITH CHECK OPTIONS를 사용하여 정의된 SQL 보기는 검색할 수 없습니다.
레코드 필드를 작성한 후에는 레코드에 있는 필드에 대한 동격의 DataItem 파트를 작성하여 생산성을 높일 수 있습니다.
- EGL 편집기에서 레코드를 연 후 아웃라인 보기를 여십시오. 아웃라인 보기는 파트의 계층 구조 보기와 페이지에 있는 다른 EGL 코드를 표시합니다.
- 아웃라인 보기에서 필드를 마우스 오른쪽 단추로 클릭한 후 DataItem 항목 작성을 클릭하십시오. EGL이 레코드에 있는 필드를 기반으로 dataItem 파트를 작성하고 이 dataItem을 필드 유형으로 사용합니다.
SQL 데이터 유형과 EGL 기본 유형의 호환성
EGL 호스트 변수(호스트 변수 참조) 및 해당 SQL 테이블 열은 다음 상황에서 호환됩니다.
- SQL 열이 문자 데이터 양식이며, EGL 호스트 변수가 SQL 열과 같거나 짧은 길이의 CHAR 유형입니다.
- SQL 열이 DBCHAR 데이터 양식이며, EGL 호스트 변수가 SQL 열과 같거나 짧은 길이의 DBCHAR 유형입니다.
- SQL 열이 숫자 양식이며 EGL 호스트 변수가 다음 유형 중 하나입니다.
- BIN(4,0)/SMALLINT
- BIN(9,0)/INT
- BIN(18,0)/BIGINT
- 소수점 이하 자릿수를 포함하여 최대 길이가 18자리인 DECIMAL. DECIMAL 변수의 자릿수는 EGL 호스트 변수 및 열과 같아야 합니다.
- SQL 열이 임의의 데이터 유형이며, EGL 호스트 변수는 HEX 유형이고, 열과 호스트 변수의 바이트 수가 같습니다. 데이터 전송 중에 데이터 변환이 일어나지 않습니다.
HEX 유형의 EGL 호스트 변수는 EGL 기본 유형에 해당하지 않는 데이터 유형의 SQL 열에 대한 액세스를 지원합니다.
SQL 테이블 열로부터 더 짧은 호스트 변수로 문자 데이터를 읽어 오는 경우에는 컨텐츠가 오른쪽에서 잘립니다. 잘림을 테스트하려면 EGL if 문에 trunc 예약어를 사용하십시오.
기본 맵핑
EGL은 SQL 검색 기능을 사용하여 레코드를 작성할 때 기본 맵핑을 사용합니다. 다음 표에는 기본 맵핑이 표시되어 있습니다.
| SQL 데이터 유형 | EGL 변수 특성 | ||
|---|---|---|---|
| 기본 유형 | 숫자/문자 | 바이트 수 | |
| BIGINT | BIGINT | n/a | 8 |
| BIT | SMALLINT | n/a | 2 |
| BLOB | BLOB | n/a | n/a |
| BOOLEAN | BOOLEAN | n/a | 1 |
| CHAR | CHAR | 1 - 32767 | 1 - 32767 |
| CLOB | CLOB | n/a | n/a |
| DATE | DATE | n/a | 8 |
| DECIMAL | DECIMAL | 1 - 18 | 1 - 10 |
| DOUBLE | FLOAT | n/a | 8 |
| FLOAT | FLOAT | n/a | 8 |
| GRAPHIC | DBCHAR | 1 - 16383 | 2 - 32766 |
| INTEGER | INT | n/a | 4 |
| LONG VARBINARY | HEX | 65534 | 32767 |
| LONG VARCHAR | CHAR | >4000 | >4000 |
| LONG VARGRAPHIC | DBCHAR | >2000 | >4000 |
| NUMERIC | DECIMAL | 1 - 18 | 1 - 10 |
| REAL | SMALLFLOAT | n/a | 4 |
| SMALLINT | SMALLINT | n/a | 2 |
| TIME | TIME | n/a | 6 |
| TIMESTAMP | TIMESTAMP | n/a | 14 |
| VARBINARY | HEX | 2 - 65534 | 1 - 32767 |
| VARCHAR | CHAR | ≤4000 | ≤4000 |
| VARGRAPHIC | DBCHAR | ≤2000 | ≤4000 |
유형이 VARCHAR 또는 VARGRAPHIC인 SQL 테이블 열의 정의는 최대 길이를 포함하며, 검색 명령은 이 최대값을 사용하여 EGL 호스트 변수에 길이를 지정합니다. 그러나 유형이 LONG VARCHAR 또는 VARGRAPHIC인 SQL 테이블 열의 정의는 최대 길이를 포함하지 않으며 검색 명령은 길이를 지정하는 데 SQL 데이터 유형 최대값을 사용합니다.
호환성
| 플랫폼 | 문제 |
|---|---|
| Java™ 생성 | SQL 테이블 열로부터 더 짧은 호스트 변수로 숫자 데이터를 읽어 오는 경우 EGL은 이 상황을 지정 명령문의 오버플로우와 같이 취급합니다. |
| COBOL 생성 | SQL 테이블 열로부터 더 짧은 호스트 변수로 숫자 데이터를 읽어 오는 경우에는 선행하는 0이 왼쪽에서 잘립니다. 잘린 후에도 해당 숫자가 호스트 변수보다 길면 숫자의 소수점 이하 부분이 오류 표시 없이 오른쪽에서 잘립니다. 여전히 해당 숫자가 더 긴 경우에는 오버플로우 상태를 나타내는 음의 SQL 코드가 리턴됩니다. |