column
column SQLRecord 필드 특성은 필드와 연관된 데이터베이스 테이블 열의 이름을 지정합니다.
기본값은 필드의 이름입니다. EGL은 열 이름 및 관련 필드를 사용하여 기본 SQL문을 작성합니다("SQL 데이터 액세스" 참조).
열 이름은 다음 예제에서처럼 인용 문자열, 문자 변수 또는 연결이 될 수 있습니다.
Record CustomerRecordPart type SQLRecord {tableNames = [["CUSTOMER"]]}
customerNumber INT {column = "Column" :: "01"};
...
end
또한 다음 예제에서처럼 인용 문자열 자체도 복합적일 수 있습니다.
record Q type SQLRecord
myField int { column = "COLUMN01 || 10 + COLUMN02 * 5" };
end
제한사항: 방금 나타낸 것처럼 복합 column 특성에 액세스하는
EGL add 또는 replace 문을 코딩하는 경우, 생성된 SQL INSERT 및 UPDATE 문은 올바르지 않을 수 있습니다.
SELECT 문을 위한 INTO 절을 생성하기 위해 복합 값을 코드화한 경우, 자체 INTO 절을 제공할 것을 고려하십시오. 세부사항은 "SQL에 대한 get 고려사항"에서 설명하는 SELECT 문 제한사항을 참조하십시오.
column 특성의 값에는 규정자가 포함될 수 있습니다. 규정자는 테이블 이름 또는
스키마 이름과 테이블 이름이 될 수 있습니다. 다음 예제는 MYSCHEMA라는 스키마와
CUSTOMER라는 테이블을 참조합니다.
Record CustomerRecordPart type SQLRecord {tableNames = [["MYSCHEMA.CUSTOMER"]]}
customerNumber INT {column = "MYSCHEMA.CUSTOMER.Column01"};
...
end
코드에 SQL 레코드를 사용하고 명시적 SQL을 포함하며 INTO 절이 없는
get 또는 open 문이 있는 경우를 고려하십시오. 예를 들어,
이러한 get 문을 포함하는 다음과 같은 EGL 코드가 있습니다.
customer CustomerRecord{};
get customer with #sql{
select MySCHEMA.CUSTOMER.Column01
from MYSCHEMA.CUSTOMER
where MYSCHEMA.CUSTOMER.Column02 = "AZ"};
방금 설명한 get 또는 open 문에서 SQL SELECT 절의 열 이름에 사용된 규정은 레코드 파트의 해당 필드에 사용된 규정과 일치해야 합니다.
또한 열 이름이 다음 SQL 예약어 중 하나인 경우에는 특수한 구문이 필요합니다.
- CALL
- FROM
- GROUP
- HAVING
- INSERT
- ORDER
- SELECT
- SET
- UNION
- UPDATE
- VALUES
- WHERE
다음 예제에 나타낸 것처럼 이러한 각 이름은 이중 따옴표 세트에 임베드되어야 하며,
안쪽의 각 따옴표 앞에는 이스케이프 문자(\)가 있어야 합니다.
column = "\"SELECT\""
예약어를 테이블 이름으로 사용하는 경우에도 유사한 상황이 적용됩니다.