Tôi đã thử kết nối với một db Sybase, sử dụng gói DBI, nhưng các truy vấn không trả lại các ký tự Hy Lạp một cách chính xác.Kết nối DBI với SQL Server (và Sybase 12.5) không trả về các ký tự Hy Lạp
Tương tự cho kết nối với máy chủ SQL. Dưới đây là một ví dụ về một lệnh dbConnect
:
library(odbc)
con <- dbConnect(odbc::odbc(), .connection_string = "Driver={SQL Server};server=ATLAS;database=master;trusted_connection=true")
Tôi không có vấn đề khi tôi sử dụng RODBC (với các hệ thống tương tự DSN)
nội dung Bảng:
> sessionInfo()
R version 3.4.1 (2017-06-30)
Platform: i386-w64-mingw32/i386 (32-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
Matrix products: default
locale:
[1] LC_COLLATE=Greek_Greece.1253 LC_CTYPE=Greek_Greece.1253 LC_MONETARY=Greek_Greece.1253 LC_NUMERIC=C
[5] LC_TIME=Greek_Greece.1253
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] odbc_1.1.1
loaded via a namespace (and not attached):
[1] bit_1.1-12 compiler_3.4.1 hms_0.3 DBI_0.7 tools_3.4.1 tibble_1.3.4 yaml_2.1.14 Rcpp_0.12.12 bit64_0.9-7
[10] blob_1.1.0 rlang_0.1.2
Có thể bạn không có gói ngôn ngữ phù hợp trong cài đặt perl của mình? Nó quay trở lại khi kết nối thông qua DBI? –
Tôi không có cài đặt perl. _> dbConnect (odbc :: odbc(), "PIND_ERGOSE", charset = "cp1253") dbo @ omiros Cơ sở dữ liệu: ERGOSE SQL Server Version: 12.50.0000_ –
@GeorgeDontas Cảm giác của tôi là vấn đề với CharSet của bạn. Xem https://sourceforge.net/p/jtds/bugs/440/ nb. Tôi đã có một vấn đề tương tự một vài năm trở lại trên Windows và đã phải thay đổi Charset. Tại sao? Cp1252 không xác định các giá trị giữa 128 và 160 để chúng được chuyển đổi thành? Tôi hy vọng những điều trên sẽ hữu ích. – Technophobe01