Ontology SQL의 매개변수 자료형
Ontology SQL 실행 본문의 parameters에는 순서가 있는 위치 매개변수 또는 이름별 매개변수 맵을 지정합니다. 값마다 자료형을 명시하며, JSON의 숫자나 문자열을 구분자 없이 직접 넣는 형태와 다릅니다.
parameters
| type | 필드 | 자료형 | 필수 여부 | 의미 |
|---|---|---|---|---|
unnamedParameterValues | values | list<ParameterValue> | 선택 | 위치 순서대로 나열한 입력값 |
namedParameterMapping | mapping | map<ParameterName, ParameterValue> | 선택 | SQL 매개변수 이름에서 입력값으로의 맵 |
ParameterName은 SQL 쿼리 매개변수의 이름인 문자열입니다. 다음은 이름별 입력의 형식 예시입니다.
{
"type": "namedParameterMapping",
"mapping": {
"minimumAge": {"type": "integer", "value": 18},
"department": {"type": "string", "value": "Engineering"}
}
}
이 값은 요청의 parameters 필드에 들어갑니다. 실행할 SQL은 별도의 필수 query 필드에 지정합니다.
ParameterValue
값 객체는 type으로 구분합니다.
| type | 추가 필드 | 필수 여부 | 의미 |
|---|---|---|---|
date | value: string | 필수 | 날짜 형식의 문자열 |
string | value: string | 필수 | 문자열 |
double | value: number | 필수 | 배정밀도 값 |
integer | value: integer | 필수 | 정수 |
float | value: number | 필수 | 부동소수점 값 |
any | value: any | 필수 | 자료형을 한정하지 않은 값 |
long | value: string | 필수 | long을 인코딩한 문자열 |
boolean | value: boolean | 필수 | 불리언 |
null | 없음 | 해당 없음 | null 값 |
short | value: integer | 필수 | short 정수 |
decimal | value: string | 필수 | decimal을 인코딩한 문자열 |
timestamp | value: string | 필수 | 날짜 및 시각 형식의 문자열 |
struct | structElements: list<StructElement> | 선택 | 순서가 있는 구조체 요소 |
list | values: list<ParameterValue> | 선택 | 같은 자료형의 값 목록 |
list | elementType: ColumnType | 필수 | 목록 원소의 자료형 |
map | values: map<MapParameterKey, ParameterValue> | 선택 | 문자열 키와 입력값의 맵 |
MapParameterKey는 맵 항목의 문자열 키입니다. 목록의 모든 값은 같은 자료형이어야 하며, 목록의 elementType도 함께 지정합니다. 날짜와 시각, long 및 decimal의 표현 예시는 다음과 같습니다.
{
"type": "unnamedParameterValues",
"values": [
{"type": "date", "value": "2026-01-04"},
{"type": "timestamp", "value": "2026-01-04T05:00:00Z"},
{"type": "long", "value": "58319870951433"},
{"type": "decimal", "value": "12.50"},
{"type": "null"}
]
}
위의 위치 매개변수 배열과 type: list 값은 별개입니다. 위치 매개변수 배열은 서로 다른 매개변수를 나열하고, list 값 내부의 원소는 같은 자료형을 사용합니다.
{
"type": "list",
"elementType": {"type": "integer"},
"values": [
{"type": "integer", "value": 18},
{"type": "integer", "value": 21}
]
}
구조체 요소
StructElement에는 다음 두 필드가 모두 필요합니다.
| 필드 | 자료형 | 의미 |
|---|---|---|
structElementName | StructElementName | 구조체 요소의 이름 |
structElementValue | ParameterValue | 구조체 요소의 값 |
StructElementName도 type으로 구분합니다. structFieldRid는 구조체 속성의 필드를 식별하는 RID이고, structFieldKey는 문자열 키입니다. 두 형태 모두 필수 문자열 value를 갖습니다.
{
"type": "struct",
"structElements": [
{
"structElementName": {"type": "structFieldKey", "value": "name"},
"structElementValue": {"type": "string", "value": "Alex"}
},
{
"structElementName": {"type": "structFieldKey", "value": "age"},
"structElementValue": {"type": "integer", "value": 42}
}
]
}
ColumnType
ColumnType은 SQL 결과나 매개변수의 열 자료형을 표현합니다. 추가 필드가 없는 변형은 다음과 같습니다.
date, string, double, integer, float, any, long, boolean, binary, short, timestamp
복합 자료형은 다음 필드를 사용합니다.
| type | 필드 | 자료형 | 필수 여부 |
|---|---|---|---|
struct | fields | list<StructColumnFieldType> | 선택 |
list | elementType | ColumnType | 필수 |
decimal | precision | integer | 필수 |
decimal | scale | integer | 필수 |
map | keyType | ColumnType | 필수 |
map | valueType | ColumnType | 필수 |
StructColumnFieldType에는 필수 문자열 name과 필수 type: ColumnType이 있습니다. ColumnType의 재귀 필드로 중첩 자료형을 정의합니다.
{
"type": "struct",
"fields": [
{"name": "name", "type": {"type": "string"}},
{"name": "salary", "type": {"type": "decimal", "precision": 12, "scale": 2}}
]
}
ColumnType의 binary 변형은 열 자료형이고 ParameterValue의 null 변형은 입력값입니다. 두 자료형의 선택 목록을 서로 바꾸어 사용하지 않습니다.