Я установил стороннюю оболочку данных в postgresql, используя freetds для подключения к SQL Server, и установил расширение tds_fdw
в postgresql, но при выборе данных из сторонней таблицы код всегда вызывает ошибку DB-Library:
DB #: ошибка 4075:
Оператор базы данных USE не выполнен, так как сортировка базы данных Persian_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, но экранирующий символ обратной косой черты, такой как 'select from where ssn = \'1234\''
, не работает и выдает синтаксическую ошибку.
Любая помощь приветствуется.