Нативная функция возврата из типа данных географии - PullRequest
0 голосов
/ 07 апреля 2020

Я создаю файл DDL для развертывания как VDB с использованием TEIID. Исходная модель MS SQl. В исходной базе данных есть столбец типа данных географии. Я пытаюсь прочитать лат и лонг из типа данных географии.

Чтобы получить широту / длину на сервере sql:

db.geogCol.Lat
db.geogCol.Long

При создании представления в файле ddl с помощью оператора select и попытке извлечь широту / длину, передавая teiid, исключение брошено. Кажется, Teiid считает, что .Lat и .Long являются столбцами, тогда как они являются sql серверной функцией, привязанной к столбцу данных географии. Как я могу выполнить это, чтобы он рассматривал вышеупомянутые аргументы как ms- sql

1 Ответ

0 голосов
/ 07 апреля 2020

Ближайшим представлением является функция источника. Вам нужно будет создать исходные функции для их представления. На sql схеме сервера:

create foreign function lat (geography geog) returns double
  OPTIONS ("teiid_rel:native-query" '$1.Lat');

и аналогичной для Long.

Teiid имеет функции st_x и st_y, но я не думаю, что они имеют право на нажатие на sql сервер в данный момент.

...