SQL Server 2008 GEOMETRY.AsGml () в представлениях с объединениями - PullRequest
1 голос
/ 01 августа 2010

У меня есть таблица, которая содержит тип данных GEOMETRY. SQL Server 2008 поставляется со встроенной функцией преобразования этих типов данных GEOMETRY в GML - GEOMETRY.AsGml (). Я считаю, что эта функция - не что иное, как пользовательская функция.

Эта функция работает точно так же, как и ожидалось, пока я не попытаюсь использовать ее в представлении, объединенном с другими таблицами / представлениями. В этом случае я получаю сообщение об ошибке в виде строки «Ссылка на удаленную функцию« dbo.PROPERTY.SHAPE.AsGml »недопустима, а имя столбца« dbo »не может быть найдено или является неоднозначным».

То, что я делал, - это создание начального представления, которое содержит все объединения, необходимые для получения нужных полей, оставляя поле GEOMETRY в его собственном формате. Затем, во вторичном представлении, я выполню преобразование GML.

Расслоение этих представлений имеет очевидные последствия для производительности, и мне интересно, почему я не могу просто выполнить AsGml () в представлениях с объединениями?

1 Ответ

3 голосов
/ 18 августа 2010

Использование встроенного оператора Select решило это для меня.

Это не сработало:

SELECT dbo.H1N1_2009.COUNTY, dbo.states.STATE_NAME, dbo.states.geom.AsGml() 
AS GML
FROM dbo.H1N1_2009 INNER JOIN dbo.states ON dbo.H1N1_2009.ID = dbo.states.ID

Это сработало:

SELECT     dbo.H1N1_2009.COUNTY, states_1.STATE_NAME,
           (SELECT geom.AsGml() AS Expr1 FROM dbo.states WHERE(ID =dbo.H1N1_2009.ID))  AS GML
FROM       dbo.H1N1_2009 INNER JOIN dbo.states AS states_1 ON dbo.H1N1_2009.ID states_1.ID

Надеюсь, это кому-нибудь поможетостальное.

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