PostgreSQL의 QGIS에서 array [] 데이터 유형 사용


9

저는 GIS 초보자 일 뿐이므로 여기에 의견이 있으면 기쁠 것입니다.

PostgreSQL에 QGIS에 연결된 테이블이 있습니다. datatype을 가진 테이블에 열이 있습니다 array[]. 그러나 사용자가 {a, d, c}와 같은 뷰를 사용하여 데이터를 열에 삽입하는 것은 쉽지 않습니다. 데이터를 편집하는 쉬운 방법이 있습니까?

'a, b, c'와 같은 QGIS에 데이터를 넣고 triggerINSERT / UPDATE BEFORE를 설정하여 데이터를 Postgres올바른 모양 으로 테이블에 넣는 아이디어가 있습니다. 그러나 가장 좋은 방법은 아닙니다.

답변:


1

내가 아는 유일한 방법은 일종의 '사용 당 kludge'입니다.

예를 들어 속성 ​​번호 배열 (속성 이름 propnum_array, dtype varchar[]) 이 포함 된 데이터가 있으며 때로는 배열이 비어있는 데이터를 식별하려고합니다.

에 대한 테스트 propnum_array = {}또는 propnum_array is null또는 propnum[0]=''그러나 내가 할 수있는 (또는 주제 유형의 다른 변형) QGIS 개그를하게 regexp_match( propnum_array,'\\d')하거나 propnum_array ilike '{""}'또는 propnum_array = '{""}'및 파티션 비어 있습니다 물건에 데이터 propnum_array하지 않은 물건을.

이것이 의미하는 것은 배열에 구조 (예 : 배열의 특정 요소에 대한 특정 값)가있는 경우이를 스캔 할 수 있다는 것입니다. 3 요소 배열의 두 번째 요소가 'Y'인 모든 값을 원하면 같은 것을 원할 것입니다 regexp_match( propnum_array,'[,]*\'Y\'\[,]*')(일치 문자열 내부의 쉼표와 작은 따옴표를 피해야하지만 다른 사람이 걱정할 유스 케이스).

propnum_array ilike '{""}'작동 한다는 사실은 QGIS가 배열을 텍스트 인 것처럼 취급한다는 것을 나타냅니다. 또는 필요한 경우 즉시 텍스트로 캐스트 할 수 있지만 배열 유형이 문서화되지 않은 경우 (AFAIK)는 의미가 없습니다. 배열 처리에 대한 문서를 찾을 수 없었으며 osgeo-qgis 메일 링리스트에 2015 년 1 월까지 질문이 있습니다.

'데이터 기반 입력 마스크' 플러그인이 v1.0.0 이후 배열 처리를 가지고 있음을 이해하지만 표현식 편집기에 배열 함수가 없다는 것이 주요 힌트입니다 (2015 년 2 월).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.