Я настроил оболочку сторонних данных в postgresql, используя freetds для подключения к SQL Server, и установил расширение tds_fdw
в postgresql, но при выборе данных из сторонней таблицы код всегда вызывает эту ошибку DB-Library:
DB #: 4075 error:
Оператор базы данных USE завершился неудачно, так как параметры сортировки базы данных Person_100_CI_AI не распознаются более старыми клиентскими драйверами. Попробуйте обновить клиентскую операционную систему или применить служебное обновление к клиентскому программному обеспечению базы данных или использовать другую сортировку. Дополнительную информацию об изменении параметров сортировки см. в электронной документации по SQL Server.
Копаюсь в файле net и config freets.conf, расположенном в /etc/freetds
[global]
# TDS protocol version
; tds version = 8.0
# Whether to write a TDSDUMP file for diagnostic purposes
# (setting this to /tmp is insecure on a multi-user system)
; dump file = /tmp/freetds.log
; debug flags = 0xffff
# Command and connection timeouts
; timeout = 10
; connect timeout = 10
# If you get out-of-memory errors, it may mean that your client
# is trying to allocate a huge buffer for a TEXT field.
# Try setting 'text size' to a more reasonable limit
text size = 64512
client charset = UTF-8
# A typical Sybase server
[egServer50]
host = symachine.domain.com
port = 5000
tds version = 5.0
# A typical Microsoft server
[mssql]
host = 192.168.x.x
port = 1433
tds version = 7.1
вот мой код sql в postgres
CREATE SERVER prs_server
FOREIGN DATA WRAPPER tds_fdw
OPTIONS (servername '192.168.x.x', port '1433',database 'prs_bpms', tds_version '7.1', msg_handler 'notice');
CREATE USER MAPPING FOR postgres
SERVER prs_server
OPTIONS (username 'bpms', password 'xxxx');
CREATE FOREIGN TABLE prs_table (
FirstName varchar null,
LastName varchar nuul,
SSN varchar not null
)
SERVER prs_server
OPTIONS (query 'SELECT top 10 [FirstName],[LastName],[SSN] FROM [dbo].[prs_Personnel] ');
SELECT * FROM prs_table;
А также мне нужно использовать предложение where, но escape-символ обратной косой черты, такой как 'select from where ssn = \'1234\''
, не работает и дает синтаксическую ошибку.
Любая помощь будет оценена.