Використовуйте тип даних масиву [] в QGIS від PostgreSQL


9

Я просто початківець в ГІС, тому буду радий побачити тут будь-який коментар.

У мене є PostgreSQL таблиці, які я підключив до QGIS. У таблицях із типом даних є стовпці array[]. Але користувачам нелегко вставляти дані в стовпчик, використовуючи такий вид {a, d, c}. Чи є простий спосіб редагування даних?

У мене є лише ідея розмістити дані в QGIS на кшталт "a, b, c" і зробити triggerINSERT / UPDATE ДО ПЕРЕД, що помістить дані в Postgresтаблицю правильним виглядом. Але це також здається не найкращим способом.

Відповіді:


1

Єдиний спосіб, про який я знаю, - це різновид "хитрості за використання".

Наприклад, у мене є дані, що включають масив номерів властивостей (ім'я атрибута 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). Мені не вдалося знайти жодного документа з обробки масиву, і ще в січні 2015 року є запитання в списку розсилки osgeo-qgis.

Я думаю, головний натяк на те, що в редакторі виразів відсутні функції масиву, хоча я розумію, що плагін "Маска введення даних, керований даними" мав обробку масиву з версії 1.0.0 (лютий 2015 р.).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.