QGIS 2.0.1을 사용하고 있으며 ESRI가 아닌 MS SQL Server 공간적으로 활성화 된 데이터베이스에 연결되어 있습니다. 레이어에 연결하여 TOC에 올바르게로드 할 수 있습니다. 가시성을 위해 중요하지 않은 여러 필드를 숨겼습니다.
이제 해당 데이터를 다른 데이터 형식으로 내보내려고합니다 (이 예제에서는 shapefile을 사용합니다). 레이어를 마우스 오른쪽 버튼으로 클릭하고 "다른 이름으로 저장"을 선택하고 출력 파일을 정의하면 다음 오류가 발생합니다.
벡터 파일로 내보내기에 실패했습니다. 오류 : GlobalID 필드에 지원되지 않는 유형
참고 1 : 대화 상자에서 "속성 만들기"를 선택하면 오류없이 모양 파일이 만들어집니다.
참고 2 : ArcGIS에는이 문제가 없으며 GUID 필드를 "TEXT"형식으로 변환하기 만합니다.
테이블을 살펴보면 숨겨둔 필드 중 하나는 SQL 유형 < uniqueidentifier > 의 GUID이며 , 이는 아마도 범인입니다. 이 문제를 해결하기 위해 "숨겨진"필드를 만들었습니다. 필드가 숨겨져 있기 때문에 QGIS는이 필드를 내보내려고 시도하지 않았지만 실제로는 그렇지 않은 것으로 나타났습니다.
QGIS에서 내보내려는 필드를 정의 할 수 있습니까?
QGIS가 "표시"필드 만 내보낼 수 있습니까? 아니면 QGIS에서 이것을 수행하는 또 다른 방법이 있습니까 (ogr2ogr 쿼리를 통해 필드를 정의 할 수 있습니까)? 내보낼 필드를 정의 할 수없는 경우 QGIS의 단점처럼 보입니다.
업데이트 : 샘플 shapefile을 사용하여 테스트를 수행하여 출력 필드를 제한 할 수 있는지 확인했습니다. 다음 ogr2ogr 명령 행은 "name"을 제외한 모든 필드를 제거하고 제거했습니다.
ogr2ogr -f "ESRI Shapefile" test.shp city.shp -sql "select name from city"
그러나 QGIS를 사용하고 추가 :
-sql "select name from city"
"다른 이름으로 저장"대화 상자의 "레이어"섹션에 단일 필드 만있는 shapefile이 생성되지 않았습니다. 따라서 파일 출력을 조작하여 몇 가지 필드 만 표시하는 방법을 실제로 알지 못합니다. 도움을 주시면 감사하겠습니다.
-sql "select <fields> from <table>"
"다른 이름으로 저장"대화 상자의 "Layer"부분에 <fields>에서 GlobalID 필드를 제외 시키려고 시도 했지만 동일한 오류가 계속 발생했습니다. 이 코드 블록을 잘못 사용 했습니까, 아니면 버그입니까?