У меня есть таблица сторонних данных, созданная с помощью tds_fdw
, которая сопоставляет представление SQL на сервере MSSQL со сторонней таблицей в Postgres. Я могу без проблем просматривать и запрашивать данные в этой таблице. Но я получаю эту ошибку, когда пытаюсь запросить эту таблицу из запроса, который присоединяется к внешней таблице и нескольким другим таблицам.
Ошибка:
[2020-07-28 14:04:25] [HV00L] ERROR: DB-Library error: DB #: 20018, DB Msg: General SQL Server error: Check messages from the SQL Server, OS #: -1, OS Msg: , Level: 15
[2020-07-28 14:04:25] [00000] DB-Library notice: Msg #: 156, Msg state: 1, Msg: Incorrect syntax near the keyword 'as'., Server: DB1DBSSVR1, Process: , Line: 1, Level: 15
Так выглядит SQL-запрос
SELECT COL1, COL2, COL3 FROM (
SELECT a.COL1, b.COL2, c.COL3 FROM
PSQL_TABLE_1 a JOIN PSQL_TABLE_2 b ON a.ID = b.ID
JOIN FOREIGN_TABLE f on b.ID = f.CODE WHERE a.COL5 = 'S'
UNION ALL
SELECT a.COL1, b.COL2, c.COL3 FROM
PSQL_TABLE_1 a JOIN PSQL_TABLE_3 b ON a.ID = b.ID
JOIN FOREIGN_TABLE f on b.ID = f.CODE WHERE a.COL5 = 'S'
)
DERIVED WHERE DERIVED.SEQ_NO = 'xxxx'
Примечание
Ранее в этом запросе использовалась локальная таблица pg, которая имела то же имя и структуру, что и внешняя таблица, и работала нормально. Эта проблема возникла после ее переименования и создания новой сторонней таблицы с тем же именем и структурой.
Incorrect syntax near the keyword 'as'.
, а в отображаемом вами запросе нетas
. Это исходит из запроса просмотра? Также из какого журнала вы получаете ошибки? - person Adrian Klaver   schedule 28.07.2020as
. Я не вижуas
в запросе. Так вы уверены, что не отредактировали его, когда анонимизировали запрос? Вы также проверили журнал SQL Server, как следует из сообщения? - person Adrian Klaver   schedule 28.07.2020tds_fdw
, тем более что теперь, когда вы говорите, что запуск всего этого локально сработал. В моем комментарии ниже вы пробовали переименоватьDERIVED
во что-то вродеDERIVED_TABLE
? - person Adrian Klaver   schedule 29.07.2020