이 섹션은 다음을 설명합니다.
롤 토토 데이터 처리 및 생성을위한 기능 및 연산자
SQL/롤 토토 PATH LANGUAGE
SQL 환경 내에서 롤 토토 데이터 유형에 대한 기본 지원을 제공하려면PostgreSQL구현SQL/롤 토토 데이터 모델. 이 모델은 일련의 항목으로 구성됩니다. 각 항목은 추가 SQL/롤 토토 NULL 값과 롤 토토 배열 및 객체를 사용하는 복합 데이터 구조로 SQL 스칼라 값을 보유 할 수 있습니다. 이 모델은 롤 토토 사양에서 묵시적 데이터 모델의 공식화입니다RFC 7159.
SQL/롤 토토은 다음을 포함하여 트랜잭션 지원을 통해 일반 SQL 데이터와 함께 롤 토토 데이터를 처리 할 수 있습니다.
롤 토토 데이터를 데이터베이스에 업로드하고 일반 SQL 열에 문자 또는 이진 문자열로 저장하십시오.
관계형 데이터에서 롤 토토 객체 및 배열 생성.
SQL/롤 토토 쿼리 함수 및 SQL/롤 토토 PATH Language Expressions를 사용하여 롤 토토 데이터 쿼리.
SQL/롤 토토 표준에 대해 자세히 알아 보려면 참조[SQLTR-19075-6]. 지원되는 롤 토토 유형에 대한 자세한 내용은postgresql, 참조PostgreSQL : 문서 : 16 : 8.14. 토토 캔 유형.
표 9.45롤 토토 데이터 유형과 함께 사용할 수있는 연산자를 보여줍니다 (참조PostgreSQL : 문서 : 16 : 8.14. 토토 캔 유형). 또한에 표시된 일반적인 비교 연산자표 9.1롤 토토B롤 토토. 비교 연산자는에 요약 된 B- 트리 작업에 대한 주문 규칙을 따릅니다.섹션 8.14.4. 참조 참조PostgreSQL : 문서 : 16 : 9.21. 스포츠 토토 베트맨 기능집계 함수의 경우롤 토토_AGG값을 롤 토토, 집계 함수로 기록하는 집계롤 토토_object_agg어떤 값을 롤 토토 객체에 집계하고롤 토토B등가,롤 토토B_AGGand롤 토토B_OBJECT_AGG.
표 9.45. 롤 토토and롤 토토B운영자
|
운영자 설명 example (s) |
|---|
|
추출물
|
|
주어진 키로 롤 토토 객체 필드를 추출합니다.
|
|
추출물
|
|
주어진 키로 롤 토토 객체 필드를 추출합니다.
|
|
경로 요소가 필드 키 또는 배열 인덱스가 될 수있는 지정된 경로에서 롤 토토 하위 객체를 추출합니다..
|
|
지정된 경로에서 롤 토토 하위 객체를 추출하여
|
롤 토토 입력에 요청과 일치 할 올바른 구조가 없으면 필드/요소/경로 추출 연산자가 실패하지 않고 널 리턴합니다. 예를 들어 그러한 키 또는 배열 요소가 존재하지 않는 경우
일부 추가 연산자는에만 존재합니다롤 토토B, 참조표 9.46. 섹션 8.14.4이러한 연산자가 어떻게 인덱스를 검색하는 데 사용되는지 설명롤 토토B데이터.
표 9.46. 추가의롤 토토B운영자
|
운영자 설명 예제 |
|---|
|
첫 번째 롤 토토 값에는 두 번째 롤 토토 값이 포함되어 있습니까? (보다섹션 8.14.3격리에 대한 자세한 내용.)
|
|
첫 번째 롤 토토 값은 두 번째 롤 토토 값입니까?
|
|
텍스트 문자열은 롤 토토 값 내에서 최상위 키 또는 배열 요소로 존재합니까?
|
|
텍스트 배열의 문자열이 최상위 키 또는 배열 요소로 존재합니까?
|
|
텍스트 배열의 모든 문자열은 최상위 키 또는 배열 요소로 존재합니까?
|
|
두 가지
단일 항목으로 다른 배열에 배열을 추가하려면 추가 배열 레이어로 랩핑하십시오 (예 :).
|
|
롤 토토 객체에서 키 (및 그 값)를 삭제하거나 롤 토토 배열에서 일치하는 문자열 값을 삭제합니다.
|
|
왼쪽 피연산자에서 일치하는 키 또는 어레이 요소를 삭제합니다.
|
|
지정된 인덱스로 배열 요소를 삭제합니다 (끝에서 음의 정수 수). 롤 토토 값이 배열이 아닌 경우 오류를 던집니다.
|
|
경로 요소가 필드 키 또는 배열 인덱스가 될 수있는 지정된 경로에서 필드 또는 배열 요소를 삭제합니다..
|
|
롤 토토 PATH가 지정된 롤 토토 값에 대한 항목을 반환합니까?
|
|
지정된 롤 토토 값에 대한 롤 토토 PATH PRECTICE의 결과를 반환합니다. 결과의 첫 번째 항목 만 고려됩니다. 결과가 부울하지 않으면
|
the롤 토토PATH운영자@?and@@다음 오류를 억제하십시오 : 객체 필드 또는 배열 요소, 예기치 않은 롤 토토 항목 유형, DateTime 및 숫자 오류. 그만큼롤 토토PATH-관련 함수 아래 설명 된 기능은 이러한 유형의 오류를 억제하도록 지시받을 수 있습니다. 이 동작은 다양한 구조의 롤 토토 문서 모음을 검색 할 때 도움이 될 수 있습니다.
표 9.47구성 할 수있는 기능을 보여줍니다롤 토토및롤 토토B값. 이 테이블의 일부 기능에는가 있습니다.반환절에서 반환 된 데이터 유형을 지정합니다. 중 하나 여야합니다.롤 토토, 롤 토토B, BYTEA, 캐릭터 문자열 유형 (텍스트, char또는Varchar) 또는 캐스트 할 수있는 유형롤 토토. 기본적으로롤 토토유형이 반환됩니다.
표 9.47. 롤 토토 제작 기능
|
기능 설명 예제 |
|---|
|
모든 SQL 값을로 변환합니다.
|
|
SQL 어레이를 롤 토토 어레이로 변환합니다. 행동은와 동일합니다.
|
|
일련의 일련에서 롤 토토 배열을 구성
|
|
SQL 복합 값을 롤 토토 객체로 변환합니다. 행동은와 동일합니다.
|
|
다양한 인수 목록에서 아마도 이질적인 롤 토토 배열을 구축합니다. 각 인수는에 따라 변환됩니다.
|
|
Variadic 인수 목록에서 롤 토토 객체를 빌드합니다. 컨벤션별로, 인수 목록은 교대 키와 값으로 구성됩니다. 주요 인수는 텍스트로 강요됩니다. 값 인수는에 따라 변환됩니다.
|
|
주어진 모든 키/값 쌍의 롤 토토 객체를 구성합니다.
|
|
텍스트 배열에서 롤 토토 객체를 빌드합니다. 배열에는 짝수의 멤버가있는 정확한 1 차원이 있어야하며,이 경우 각 내부 배열에 정확히 두 개의 요소가 있도록 키/값 쌍으로 취해 지도록 두 개의 차원으로 간주됩니다. 모든 값은 롤 토토 문자열로 변환됩니다.
|
|
이 형태의
|
|
[a]예를 들어,PostgreSQL : 문서 : 16 : F.18. 토토 커뮤니티 - 토토 커뮤니티 키/값 데이터 유형Extension은에서 캐스트되었습니다. |
표 9.48세부 사항 롤 토토 테스트를위한 SQL/롤 토토 시설.
표 9.48. SQL/롤 토토 테스트 기능
표 9.49처리 할 수있는 기능을 보여줍니다롤 토토and롤 토토B값.
표 9.49. 롤 토토 처리 기능
|
기능 설명 예제 |
|---|
|
최상위 롤 토토 배열을 롤 토토 값 세트로 확장합니다.
값 ---------- 1 진실 [2, false] |
|
최상위 롤 토토 배열을 세트로 확장합니다
값 ---------- foo 술집 |
|
최상위 롤 토토 배열의 요소 수를 반환합니다.
|
|
최상위 롤 토토 객체를 키/값 쌍 세트로 확장합니다.
키 | 값 -----+------- A | "foo" B | "술집" |
|
최상위 롤 토토 객체를 키/값 쌍 세트로 확장합니다. 반환
키 | 값 -----+------- A | foo B | 술집 |
|
지정된 경로에서 롤 토토 하위 객체를 추출합니다. (이것은 기능적으로에 해당합니다
|
|
지정된 경로에서 롤 토토 하위 객체를 추출합니다.
|
|
최상위 롤 토토 개체에서 키 세트를 반환합니다.
롤 토토_object_keys ----------------- F1 F2 |
|
최상위 롤 토토 객체를 복합 유형의 | 롤 토토 값을 SQL 유형의 출력 열로 변환하려면 다음 규칙이 순서대로 적용됩니다.
아래 예제는 상수 롤 토토 값을 사용하지만 일반적인 사용은 a를 참조하는 것입니다.
a | B | 기음 ---+-----------+------------ 1 | 2, "a b" | (4, "A B C") |
|
객체의 최상위 json 배열을 복합 유형의를 갖는 행 세트로 확장합니다.
a | 비 ---+--- 1 | 2 3 | 4 |
|
최상위 롤 토토 객체를 복합 유형에 의해 정의 된 행으로 확장
a | B | C | d | 아르 자형 ---+--------+--------+---+------------- 1 | [1,2,3] | 1,2,3 | | (123, "A B C") |
|
최상위 레벨 롤 토토 객체 배열을 AN에 의해 정의 된 복합 유형을 갖는 일련의 행으로 확장합니다
a | 비 ---+----- 1 | foo 2 | |
|
반환
|
|
if
|
|
반환
|
|
주어진 롤 토토 값에서 널 값을 갖는 모든 객체 필드를 재귀 적으로 삭제합니다. 객체 필드가 아닌 널 값은 손대지 않았습니다.
|
|
롤 토토 경로가 지정된 롤 토토 값에 대해 항목을 반환하는지 확인합니다. 인 경우
|
|
지정된 롤 토토 값에 대한 롤 토토 경로 술어 검사 결과를 반환합니다. 결과의 첫 번째 항목 만 고려됩니다. 결과가 부울하지 않으면
|
|
지정된 롤 토토 값에 대해 롤 토토 경로에 의해 반환 된 모든 롤 토토 항목을 반환합니다. 선택 사항
롤 토토B_PATH_QUERY ----------------- 2 3 4 |
|
지정된 롤 토토 값에 대해 롤 토토 경로에 의해 RETURNE RETURNE 롤 토토 값을 롤 토토 어레이로 반환합니다. 선택 사항
|
|
지정된 롤 토토 값에 대해 롤 토토 경로에서 반환 한 첫 번째 롤 토토 항목을 반환합니다. 보고
|
|
이 기능은 위에서 설명한 상대방처럼 작용합니다.
|
|
주어진 롤 토토 값을 인쇄 된 인쇄 된 텍스트로 변환합니다.
[
"F1": 1,
"F2": NULL
,
2
]
|
|
최상위 롤 토토 값의 유형을 텍스트 문자열로 반환합니다. 가능한 유형은
|
SQL/롤 토토 경로 표현식 XML에 대한 SQL 액세스에 사용되는 XPath 표현식과 유사한 롤 토토 데이터에서 검색 할 항목을 지정합니다. 안에PostgreSQL, 경로 표현식은로 구현됩니다.롤 토토PATH데이터 유형 및에 설명 된 요소를 사용할 수 있습니다섹션 8.14.7.
롤 토토 쿼리 함수 및 연산자가 제공된 경로 표현식을 전달합니다Path Engine평가 용. 표현식이 쿼리 된 롤 토토 데이터와 일치하면 해당 롤 토토 항목 또는 항목 세트가 반환됩니다. 경로 표현식은 SQL/롤 토토 Path Language로 작성되며 산술 표현 및 기능을 포함 할 수 있습니다.
경로 표현식은에 의해 허용되는 일련의 요소로 구성됩니다.롤 토토PATH데이터 유형. 경로 표현식은 일반적으로 왼쪽에서 오른쪽으로 평가되지만 괄호를 사용하여 작업 순서를 변경할 수 있습니다. 평가가 성공하면 일련의 롤 토토 항목이 생성되고 평가 결과가 지정된 계산을 완료하는 롤 토토 쿼리 기능으로 반환됩니다.
롤 토토 값을 쿼리하는 것을 참조하려면 (컨텍스트 항목), 사용$경로 표현식의 변수. 한 명 이상이 뒤 따릅니다액세서 연산자, 컨텍스트 항목의 하위 항목을 검색하기 위해 롤 토토 구조 레벨을 레벨별로 내려갑니다. 다음에 나오는 각 연산자는 이전 평가 단계의 결과를 다룹니다.
예를 들어 :과 같이 구문 분석하려는 GPS 트래커의 롤 토토 데이터가 있다고 가정합니다.
"길":
"세그먼트": [
"위치": [47.763, 13.4034],
"시작 시간": "2018-10-14 10:05:14",
"HR": 73
,
"위치": [47.706, 13.2635],
"시작 시간": "2018-10-14 10:39:21",
"HR": 135
]]
사용 가능한 트랙 세그먼트를 검색하려면를 사용해야합니다..액세서 연산자 주변 롤 토토 개체를 통해 내려 오는 조작자 :키
$ .track.segments
배열의 내용을 검색하려면 일반적으로를 사용합니다.[*]운영자. 예를 들어, 다음 경로는 사용 가능한 모든 트랙 세그먼트의 위치 좌표를 반환합니다.
$ .track.segments [*]. 위치
첫 번째 세그먼트의 좌표 만 반환하려면 해당 첨자를 지정할 수 있습니다.[]액세서 연산자. 롤 토토 배열 인덱스는 0과 관련이 있음을 상기하십시오.
$ .track.segments [0] .location
각 경로 평가 단계의 결과는 하나 이상으로 처리 할 수 있습니다롤 토토PATH운영자 및 메소드에 나열된섹션 9.16.2.2. 각 메소드 이름에는 점이 뒤 바져 있어야합니다. 예를 들어 배열의 크기를 얻을 수 있습니다.
$ .track.segments.size ()
사용의 더 많은 예롤 토토PATH경로 표현식 내의 연산자 및 메소드 아래에 표시섹션 9.16.2.2.
경로를 정의 할 때 하나 이상을 사용할 수도 있습니다필터 표현식그와 유사하게 작동하는여기서SQL의 조항. 필터 표현식은 물음표로 시작하여 괄호로 조건을 제공합니다.
? (조건)
필터 표현식은 적용 해야하는 경로 평가 단계 직후에 작성해야합니다. 해당 단계의 결과는 제공된 조건을 만족시키는 항목 만 포함하도록 필터링됩니다. SQL/롤 토토은 3 값 논리를 정의하므로 조건이 될 수 있습니다true, 거짓, 또는89899_89908. 그만큼알 수없는Value는 SQL과 동일한 역할을합니다null알 수 없음술어. 추가 경로 평가 단계는 필터 표현식이 반환 된 항목 만 사용합니다true.
필터 표현식에 사용할 수있는 기능 및 연산자는에 나열되어 있습니다.표 9.51. 필터 표현식 내에서@변수는 필터링되는 값을 나타냅니다 (즉, 이전 경로 단계의 한 결과). 이후에 액세서 연산자를 쓸 수 있습니다@구성 요소 항목을 검색하려면
예를 들어, 130보다 높은 모든 심박수 값을 검색하고 싶다고 가정합니다. 다음 표현식을 사용하여이를 달성 할 수 있습니다..
$ .track.segments [*]. hr? (@ 130)
그러한 값으로 세그먼트의 시작 시간을 얻으려면 시작 시간을 반환하기 전에 관련없는 세그먼트를 걸러 내야하므로 필터 표현식이 이전 단계에 적용되며 조건에 사용 된 경로는 다음과 같습니다.
$ .track.segments [*]? (@.hr 130). "시작 시간"
필요한 경우 순서대로 여러 필터 표현식을 사용할 수 있습니다. 예를 들어, 다음 표현식은 관련 좌표와 높은 심박수 값이있는 위치를 포함하는 모든 세그먼트의 시작 시간을 선택합니다.
$ .track.segments [*]? (@.location [1] <13.4)? (@.hr 130). "시작 시간"
다른 둥지 레벨에서 필터 표현식을 사용하는 것도 허용됩니다. 다음 예제는 먼저 위치별로 모든 세그먼트를 필터링 한 다음 가능한 경우이 세그먼트에 대해 높은 심박수 값을 반환합니다.
$ .track.segments [*]? (@.location [1] <13.4) .hr? (@ 130)
서로 안에 필터 표현을 중첩 할 수도 있습니다 :
$ .Track? (존재합니다 (@. segments [*]? (@.hr 130)). segments.size ()
이 표현식은 심박수 값이 높은 세그먼트가 포함되어 있거나 빈 시퀀스가 포함 된 경우 트랙의 크기를 반환합니다.
PostgreSQL의 SQL/롤 토토 PATH 언어 구현에는 SQL/롤 토토 표준에서 다음 편차가 있습니다 :
SQL/롤 토토 표준은 필터에서만 사전 화를 허용하지만 경로 표현식은 부울 술어 일 수 있습니다. 이것은 구현에 필요합니다@@운영자. 예를 들어 다음롤 토토PATH표현식이 유효합니다PostgreSQL:
$ .track.segments [*]. hr <70
정규 표현 패턴의 해석에는 약간의 차이가 있습니다.Like_Regex필터에 설명 된대로섹션 9.16.2.3.
롤 토토 데이터를 쿼리 할 때 경로 표현식이 실제 롤 토토 데이터 구조와 일치하지 않을 수 있습니다. 배열의 객체 또는 요소의 존재하지 않는 멤버에 액세스하려는 시도는 구조적 오류가 발생합니다. SQL/롤 토토 경로 표현식에는 구조적 오류를 처리하는 두 가지 모드가 있습니다.
lax (기본값) - 경로 엔진은 쿼리 된 데이터를 지정된 경로에 암시 적으로 조정합니다. 나머지 구조적 오류는 억제되어 빈 SQL/롤 토토 시퀀스로 변환됩니다.
엄격한 - 구조적 오류가 발생하면 오류가 발생합니다.
LAX 모드는 롤 토토 데이터가 예상 스키마를 준수하지 않으면 롤 토토 문서 구조 및 경로 표현식의 일치를 용이하게합니다. 피연산자가 특정 작업의 요구 사항과 일치하지 않으면이 작업을 수행하기 전에 요소를 SQL/롤 토토 시퀀스로 변환하여 자동으로 SQL/롤 토토 어레이로 랩핑하거나 포장되지 않은 상태로 만들 수 있습니다. 게다가, 비교 운영자는 LAX 모드에서 오페라를 자동으로 풀므로 SQL/롤 토토 배열을 상자 외부로 비교할 수 있습니다. 크기 1의 배열은 유일한 요소와 동일하게 간주됩니다. 자동 풀림 랩핑은 다음과 같은 경우에만 수행되지 않습니다.
경로 표현식에는type ()또는size ()배열의 유형과 요소 수를 반환하는 메소드.
쿼리 된 롤 토토 데이터에는 중첩 어레이가 포함되어 있습니다. 이 경우 가장 바깥 쪽 배열 만 랩핑되지 않은 반면 모든 내부 배열은 변하지 않습니다. 따라서 암시 적 풀림 랩핑은 각 경로 평가 단계에서 한 레벨 만 다운 할 수 있습니다.
예를 들어, 위에 나열된 GPS 데이터를 쿼리 할 때 LAX 모드를 사용할 때 세그먼트 배열을 저장한다는 사실에서 추상화 할 수 있습니다.
lax $ .track.segments.location
엄격한 모드에서 지정된 경로는 쿼리 된 롤 토토 문서의 구조와 정확히 일치해야 SQL/롤 토토 항목을 반환해야 하므로이 경로 표현식을 사용하면 오류가 발생합니다. LAX 모드와 동일한 결과를 얻으려면 명시 적으로 랩을 풀어야합니다.세그먼트배열 :
엄격한 $ .track.segments [*]. 위치
the.**액세서는 LAX 모드를 사용할 때 놀라운 결과로 이어질 수 있습니다. 예를 들어, 다음 쿼리는 모든 것을 선택합니다HR값 두 번 :
LAX $. **. HR
이것은이기 때문에 발생합니다..**Accessor는 두 가지를 선택합니다세그먼트배열 및 각 요소, 반면.hr액세서는 LAX 모드를 사용할 때 자동으로 배열을 풀립니다. 놀라운 결과를 피하려면 사용 권장합니다..**엄격한 모드에서만 액세서. 다음 쿼리는 각각을 선택합니다HR한 번만 가치 :
엄격한 $. **. HR
표 9.50롤 토토PATH. 단체 연산자와 방법은 앞의 경로 단계로 인한 여러 값에 적용될 수 있지만 이진 연산자 (추가 등)는 단일 값에만 적용될 수 있습니다..
표 9.50. 롤 토토PATH운영자 및 방법
|
연산자/메소드 설명 예제 |
|---|
|
추가
|
|
Unary Plus (작동 없음); 추가와 달리 여러 값을 반복 할 수 있습니다
|
|
Subtraction
|
|
부정; 빼기와 달리 여러 값을 반복 할 수 있습니다
|
|
곱셈
|
|
Division
|
|
모듈로 (나머지)
|
|
롤 토토 항목의 유형 (참조
|
|
롤 토토 항목의 크기 (배열 요소 수 또는 배열이 아닌 경우 1)
|
|
롤 토토 번호 또는 문자열에서 변환 된 근사 부동 소수점 번호
|
|
가장 가까운 정수가 주어진 숫자보다 크거나 동일합니다
|
|
가장 가까운 정수가 주어진 숫자보다 작거나 동일합니다
|
|
지정된 숫자의 절대 값
|
|
문자열에서 변환 된 날짜/시간 값
|
|
지정된 문자열에서 변환 된 날짜/시간 값
|
|
객체의 키-값 쌍은 세 개의 필드를 포함하는 객체 배열로 표시됩니다.
|
결과 유형dateTime ()및dateTime (메소드가 될 수 있습니다템플릿)날짜, TIMETZ, Time, Timestamptz또는타임 스탬프. 두 방법 모두 결과 유형을 동적으로 결정합니다.
thedateTime ()메소드는 입력 문자열을 ISO 형식에 맞추려고 순차적으로 시도합니다날짜, TIMETZ, Time, Timestamptz및타임 스탬프. 첫 번째 일치하는 형식으로 중지하고 해당 데이터 유형을 방출합니다.
thedateTime (메소드 제공된 템플릿 문자열에 사용 된 필드에 따라 결과 유형을 결정합니다.템플릿)
thedateTime ()및dateTime (메소드와 동일한 구문 분석 규칙을 사용하십시오템플릿)TO_TIMESTAMPSQL 기능 (참조PostgreSQL : 문서 : 16 : 9.8. 데이터 유형 스포츠 토토 결과 스포츠 토토 결과 기능), 세 가지 예외가 있습니다. 첫째, 이러한 방법은 타의 추종을 불허하는 템플릿 패턴을 허용하지 않습니다. 둘째, 템플릿 문자열에는 다음 분리기 만 허용됩니다 : 마이너스 부호, 기간, solidus (슬래시), 쉼표, 아포스트로피, 세미콜론, 콜론 및 공간. 셋째, 템플릿 문자열의 분리기는 입력 문자열과 정확히 일치해야합니다.
다른 날짜/시간 유형을 비교 해야하는 경우 암시 적 캐스트가 적용됩니다. 에이날짜값을 캐스트 할 수 있습니다타임 스탬프또는Timestamptz, 타임 스탬프캐스트 될 수 있습니다Timestamptz및TimetoTIMETZ. 그러나 이러한 전환의 첫 번째 전환은 현재에 따라 다릅니다타임 존설정, 따라서 시간대 인식 내에서만 수행 할 수 있습니다롤 토토PATH기능.
표 9.51사용 가능한 필터 표현식 요소가 표시됩니다.
표 9.51. 롤 토토PATH필터 표현 요소
|
술어/가치 설명 예제 |
|---|
|
평등 비교 (이것과 다른 비교 연산자는 모든 롤 토토 스칼라 값에 대해 작동)
|
|
비등성 비교
|
|
비교 이상의
|
|
적은 비교보다 적은 비교
|
|
비교보다 큰 비교
|
|
더 큰 비교
|
|
롤 토토 Constant
|
|
롤 토토 Constant
|
|
롤 토토 Constant
|
|
부울 및
|
|
부울 또는
|
|
부울 아님
|
|
부울 상태인지 테스트합니다
|
|
첫 번째 피연산자가 두 번째 피연산자에 의해 주어진 정규 표현과 일치하는지 여부를 테스트합니다.
|
|
두 번째 피연산자가 첫 번째 피연산자의 초기 하위 스트링인지 테스트합니다.
|
|
경로 표현식이 하나 이상의 SQL/롤 토토 항목과 일치하는지 테스트합니다. 보고
|
SQL/롤 토토 경로 표현식 텍스트와 일치하는 텍스트와 일치하는Like_Regex필터. 예를 들어, 다음 SQL/롤 토토 PATH 쿼리는 영어 모음으로 시작하는 배열의 모든 문자열을 대상으로 비면적으로 일치합니다.
$ [*]? (@ like_regex "^[aeiou]"flag "i")
선택 사항플래그문자열은 문자 중 하나 이상을 포함 할 수 있습니다i케이스 감수성 일치,m허용^1233PostgreSQL : 문서 : 16 : 9.16. 롤 토토 기능 및 운영자350$Newlines에서 일치하려면s허용.Newline과 일치하려면q전체 패턴을 인용하려면 (동작을 간단한 부분 문자열 일치로 줄이기).
SQL/롤 토토 표준은 정기 표현에 대한 정의를 빌려Like_Regex연산자는 XQuery 표준을 사용합니다. PostgreSQL은 현재를 지원하지 않습니다.Like_Regex운영자. 따라서Like_Regex필터는에 설명 된 POSIX 정규식 엔진을 사용하여 구현됩니다섹션 9.7.3. 이것은 표준 SQL/롤 토토 동작의 다양한 사소한 불일치로 이어지며, 이는.섹션 9.7.3.8. 그러나 설명 된 플래그 레터 비 호환성은 SQL/롤 토토에 적용되지 않습니다. XQuery 플래그 문자가 Posix 엔진이 기대하는 것과 일치하도록 변환되므로.
의 패턴 인수를 명심하십시오.Like_Regex|섹션 8.14.7. 이는 특히 정규 표현식에서 사용하려는 백 슬래시가 두 배가되어야 함을 의미합니다. 예를 들어, 숫자 만 포함하는 루트 문서의 문자열 값과 일치하려면
$.*? (@ like_regex "^\\ d+$")
문서에 올바른 것이 없다면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면