Как получить картографические данные в Oracle - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть две таблицы в Oracle, как показано ниже, и мне нужно отобразить данные из этих двух таблиц из хранимой процедуры или в коде c # для ядра .net.Оба будут работать для меня.

Первая таблица содержит данные в форме ключ-значение, где «Ключ» - это идентификатор второй таблицы.Значением являются фактические требуемые данные.

Первая таблица:

ID                     Data
1           {"f100000":["02/02/2012"],"f100001":["01/04/2013"]}

Итак, "f100000", "f100001" ... и т. Д. Являются ключами и идентификатором для Второй таблицы

Вторая таблица содержит простые данные с идентификатором и именем

ID           Name
f100000  Name of the field
f100001  Name of the field2

Я ожидаю, что результат будет следующим:

Key                      Value
Name of the field     02/02/2012
Name of the field2    01/04/2013

1 Ответ

0 голосов
/ 08 февраля 2019

Это не произойдет в текущей форме без постороннего кода, который является избыточным / неэффективным, когда дизайн базы данных может быть улучшен.

Может ли дизайн таблицы 1 не быть улучшен, то есть иметь отдельные поля для f ###### значения и для соответствующей даты.

Таким образом, значения f ###### могут быть проиндексированы, так что объединения будут эффективно выполняться между двумя таблицами.

Эта поправка потребуетЭто должно быть сделано в коде, который вставляет записи в таблицу.

Если нет, вам необходимо:

  1. Выбрать строки из таблицы 1.
  2. Разделить строку намассив на основе символа ','
  3. Разделение каждого из этих значений массива на другой двухмерный массив на основе символа ':' при циклическом прохождении первого массива
  4. Вычеркнуть '[', ']Символы 'и' '' из поля даты для его разбора
  5. В цикле, затем SELECT из таблицы_2.id = значение из второго массива [0] значение
  6. Вывести строку результатов с помощьюлиния

Поскольку это необходимо делать при каждом запуске кода, это очень эффективно.Гораздо лучше перепроектировать таблицу 1 и добавить логику для вставки по мере необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...