ABAP에서 내장된 문자열 함수와 마찬가지로, CDS(View)도 문자 또는 숫자 데이터 유형의 필드를 사용하여 문자열 연산을 수행할 수 있습니다. 이러한 함수의 가용성은 사용 중인 SAP NetWeaver 버전에 따라 달라집니다. concat_with_space, length, left, right 등과 같은 일부 작업은 SAP NetWeaver 7.50부터 사용할 수 있으며, 이러한 기능은 기존 함수의 부족한 부분을 보완하고 특정 비즈니스 시나리오를 처리하기 위해 도입되었습니다.
아래 표는 CDS 프레임워크 내에서 문자열 연산을 수행하기 위해 사용할 수 있는 여러 내장 문자열 함수를 보여줍니다.
Built-In String Functions | Possible Outcome |
LENGTH(expr) ■ 표현식(expression)의 문자 수를 반환합니다. 표현식에 후행 공백이 포함되어 있다면, 이러한 공백은 무시됩니다. ■ expr에 대해 지원되는 데이터 유형은 CHAR, CLNT, LANG, NUMC, CUKY, UNIT, DATS, TIMS 및 SSTRING입니다. ■ 결과값의 데이터 유형은 INT4입니다. |
LENGTH(‘String’) = 6 |
INSTR(expr, sub ) ■ 함수에서 지정된 부분 문자열(pattern)의 시작 위치를 반환합니다. ■ expr에 대해 지원되는 데이터 유형은 CHAR, CLNT, LANG, NUMC, CUKY, UNIT, DATS, TIMS 및 SSTRING입니다. ■ 결과값의 데이터 유형은 INT4입니다. |
INSTR(‘String’, ‘in’) = 4 |
CONCAT(expr1, expr2) ■ expr1과 expr2를 공백 없이 연결하는 데 사용됩니다. ■ expr에 대해 지원되는 데이터 유형은 CHAR, CLNT, LANG, NUMC, CUKY, UNIT, DATS, TIMS 및 SSTRING입니다. ■ 만약 표현식의 유형이 SSTRING이라면 결과값의 데이터 유형은 SSTRING이고, 그렇지 않으면 결과의 길이와 동일한 길이를 갖는 CHAR 데이터 유형입니다. |
CONCAT(‘Concatenate’,’string’ ) = Concatenatestring |
CONCAT_WITH_SPACE(expr1,expr2,spaces) ■ 함수에서 지정된 개수의 공백을 사용하여 expr1과 expr2를 연결하는 데 사용됩니다. ■ 이 경우, 공백은 양의 숫자로 범위를 가질(> 0 및 <=1331) 수 있습니다. ■ expr에 대해 지원되는 데이터 유형은 CHAR, CLNT, LANG, NUMC, CUKY, UNIT, DATS, TIMS 및 SSTRING입니다. ■ 만약 표현식의 유형이 SSTRING이라면 결과값의 데이터 유형은 SSTRING이고, 그렇지 않으면 결과의 길이와 동일한 길이를 갖는 CHAR 데이터 유형입니다. |
CONCAT_WITH_SPACE(‘Concatenate’, ’string’,1) = Concatenate string |
LEFT(expr,len) ■ 함수의 길이를 기반으로 표현식의 왼쪽에서 지정된 개수의 문자를 반환합니다. ■ 이 경우, len은 양의 숫자 리터럴(> 0 및 <=1333)일 수 있습니다. ■ expr에 대해 지원되는 데이터 유형은 CHAR, CLNT, LANG, NUMC, CUKY, UNIT, DATS, TIMS 및 SSTRING입니다. ■ 만약 표현식의 유형이 SSTRING이라면 결과값의 데이터 유형은 SSTRING이고, 그렇지 않으면 결과의 길이와 동일한 길이를 갖는 CHAR 데이터 유형입니다. |
LEFT(‘STRING’,3) = STR |
RIGHT(expr,len) ■ 함수의 길이를 기반으로 표현식의 오른쪽에서 지정된 개수의 문자를 반환합니다. ■ 이 경우, len은 양의 숫자 리터럴(> 0 및 <=1333)일 수 있습니다. ■ expr에 대해 지원되는 데이터 유형은 CHAR, CLNT, LANG, NUMC, CUKY, UNIT, DATS, TIMS 및 SSTRING입니다. ■ 만약 표현식의 유형이 SSTRING이라면 결과값의 데이터 유형은 SSTRING이고, 그렇지 않으면 결과의 길이와 동일한 길이를 갖는 CHAR 데이터 유형입니다. |
RIGHT(‘STRING’,3) = ING |
■ LPAD(expr,len,literal) 문자열 리터럴을 함수에서 지정된 길이에 따라 표현식의 왼쪽에 패딩합니다. ■ 이 경우, len은 양의 숫자 리터럴(> 0 및 <=1333)일 수 있으며, literal은 임의의 문자열 리터럴일 수 있습니다. ■ expr에 대해 지원되는 데이터 유형은 CHAR, CLNT, LANG, NUMC, CUKY, UNIT, DATS, TIMS 및 SSTRING입니다. ■ 만약 표현식의 유형이 SSTRING이라면 결과값의 데이터 유형은 SSTRING이고, 그렇지 않으면 결과의 길이와 동일한 길이를 갖는 CHAR 데이터 유형입니다. |
LPAD(‘STRING’, 10, ‘L’) = LLLLSTRING |
RPAD(expr,len,literal) ■ 문자열 리터럴을 함수에서 지정된 길이에 따라 표현식의 오른쪽에 패딩합니다. ■ 이 경우, len은 양의 숫자 리터럴(> 0 및 <=1333)일 수 있으며, literal은 임의의 문자열 리터럴일 수 있습니다. ■ expr에 대해 지원되는 데이터 유형은 CHAR, CLNT, LANG, NUMC, CUKY, UNIT, DATS, TIMS 및 SSTRING입니다. ■ 만약 표현식의 유형이 SSTRING이라면 결과값의 데이터 유형은 SSTRING이고, 그렇지 않으면 결과의 길이와 동일한 길이를 갖는 CHAR 데이터 유형입니다. |
RPAD(‘STRING’, 10, ‘R’) = STRINGRRRR |
LTRIM(expr,char) ■ 함수에서 지정된 문자를 표현식의 왼쪽에서 제거합니다. 이 경우, char는 길이가 1인 임의의 문자입니다. ■ expr에 대해 지원되는 데이터 유형은 CHAR, CLNT, LANG, NUMC, CUKY, UNIT, DATS, TIMS 및 SSTRING입니다. ■ 만약 표현식의 유형이 SSTRING이라면 결과값의 데이터 유형은 SSTRING이고, 그렇지 않으면 결과의 길이와 동일한 길이를 갖는 CHAR 데이터 유형입니다. |
LTRIM(‘STRING’,‘S’) = TRING |
RTRIM(expr,char) ■ 함수에서 지정된 문자를 표현식의 오른쪽에서 제거합니다. ■ 이 경우, char는 길이가 1인 임의의 문자입니다. ■ expr에 대해 지원되는 데이터 유형은 CHAR, CLNT, LANG, NUMC, CUKY, UNIT, DATS, TIMS 및 SSTRING입니다. ■ 만약 표현식의 유형이 SSTRING이라면 결과값의 데이터 유형은 SSTRING이고, 그렇지 않으면 결과의 길이와 동일한 길이를 갖는 CHAR 데이터 유형입니다. |
RTRIM(‘STRING’,’G’) = STRIN |
LOWER(expr) ■ expr를 소문자로 변환합니다. ■ expr에 대해 지원되는 데이터 유형은 CHAR, CLNT, LANG, CUKY, UNIT 및 SSTRING입니다. ■ 결과값의 데이터 유형과 길이는 표현식과 동일합니다. |
LOWER(‘STRING’) = string |
UPPER(expr) ■ expr를 대문자로 변환합니다. ■ expr에 대해 지원되는 데이터 유형은 CHAR, CLNT, LANG, CUKY, UNIT 및 SSTRING입니다. ■ 결과값의 데이터 유형과 길이는 표현식과 동일합니다 |
UPPER(‘string’) = STRING |
REPLACE(expr1, expr2, expr3) ■ expr1에서 expr2를 expr3로 대체하는 데 사용됩니다. ■ expr에 대해 지원되는 데이터 유형은 CHAR, CLNT, LANG, NUMC, CUKY, UNIT, DATS, TIMS 및 SSTRING입니다. ■ 결과값의 데이터 유형은 SSTRING입니다. expr1과 expr3가 SSTRING이면 SSTRING이고, 그렇지 않으면 결과의 최대 가능한 길이를 갖는 CHAR 데이터 유형입니다. |
REPLACE(‘STRING’, ‘ING’, ‘XXX’) = STRXXX |
SUBSTRING(expr,pos,len) ■ 함수에서 지정된 위치부터 expr의 부분 문자열을 반환합니다. 반환되는 부분 문자열의 길이도 여기에서 지정됩니다. ■ 이 경우, pos와 len은 0이 아닌 양의 숫자 리터럴입니다. expr에 대해 지원되는 데이터 유형은 CHAR, CLNT, LANG, NUMC, CUKY, UNIT, DATS, TIMS 및 SSTRING입니다. ■ 결과값의 데이터 유형은 SSTRING입니다. 만약 expr이 SSTRING이라면, 함수의 길이가 지정된 CHAR 또는 NUMC 데이터 유형입니다. |
SUBSTRING(‘STRING’, 2, 4) = TRIN |
아래 코드는 데이터 소스 SCARR을 사용하는 CDS 뷰 정의의 예입니다. 이 CDS 뷰는 데이터 소스 필드 SCARR 테이블의 URL필드에 대해 여러 문자열 함수를 사용하여 문자열 연산을 수행합니다. 결과는 그림 1 에 있습니다.
@AbapCatalog.sqlViewName: 'ZCDS_EX_SQL_08'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Demo CDS view using string functions'
define view ZCDS_Example_08
as select from scarr
{
carrname,
--LENGTH returns the number of characters in a string
LENGTH(url) as fnlength,
--INSTR returns the start position of the substring pattern
INSTR(url,'air') as fninstr,
--Concatenates two expression without space
CONCAT('Website', url) as fnconcat,
--Concatenates two expressions with number of spaces specified
CONCAT_WITH_SPACE( 'Website',url,1) as fnconcat_with_space,
--LEFT returns the number of characters from the left side of the expression
LEFT(url,3) as fnleft,
--RIGHT returns the number of characters from the right side of the expression
RIGHT(url,3) as fnright,
--LPAD to pad literals to the left side of the expressions
LPAD(url, 20, 'x') as fnlpad,
--RPAD to pad literals to the right side of the expressions
RPAD(url, 6, 'y') as fnrpad,
--LRIM to remove character specified in the function from the left side of the
expression
LTRIM(url, 'A') as fnltrim,
--RRIM to remove character specified in the function from the right side of
the expression
RTRIM(url, 'B') as fnrtrim,
--Lower to translates the string to lowercase
LOWER(url) as fnlower,
--Upper to translates the string to uppercase
UPPER(url) as fnupper,
--REPLACE to replace the expression 2 with expression 3 from the expression 1
REPLACE(url, 'http', 'https' ) as fnreplace,
SUBSTRING(url, 2, 3 ) as fnsubstring
}
반응형
'CDS View(Core Data Service) > Core Data Service 기초' 카테고리의 다른 글
CDS View 내장 함수 & 표현식 4. Conversion Function (0) | 2023.06.27 |
---|---|
CDS View 내장 함수 & 표현식 3. COALESCE Function (0) | 2023.06.27 |
CDS View 내장 함수 & 표현식 1. Numeric Built-In Function (0) | 2023.06.25 |
CDS View 정의 2 (0) | 2023.06.25 |
CDS View 정의 1 (2) | 2023.06.24 |