Sau nhiều giờ làm việc về điều này, cuối cùng tôi đã có thể làm cho sqlSave hoạt động trong khi chỉ định tên bảng - hít thở sâu, bắt đầu từ đâu. Đây là danh sách những việc tôi đã làm để điều này hoạt động:
- Mở Quản trị viên ODBC 32-bit và tạo một DSN Người dùng và định cấu hình nó cho cơ sở dữ liệu cụ thể của bạn. Trong trường hợp của tôi, tôi đang tạo một bảng tạm thời toàn cục nên tôi đã liên kết với tempdb. Sử dụng Tên kết nối này trong
odbcConnection(Name)
của bạn . Đây là mã của tôimyconn2 <- odbcConnect("SYSTEMDB")
. - Sau đó, tôi đã xác định các kiểu dữ liệu của mình bằng mã sau:
columnTypes <- list(Record = "VARCHAR(10)", Case_Number = "VARCHAR(15)", Claim_Type = "VARCHAR(15)", Block_Date = "datetime", Claim_Processed_Date = "datetime", Status ="VARCHAR(100)")
. - Sau đó, tôi đã cập nhật các loại lớp khung dữ liệu của mình bằng cách sử dụng
as.character
vàas.Date
để khớp với các loại dữ liệu được liệt kê ở trên. - Tôi đã tạo bảng vì tôi đã làm việc trên nó trong nhiều giờ nên tôi phải bỏ bảng bằng cách sử dụng
sqlDrop(myconn2, "##R_Claims_Data")
. - Sau đó, tôi đã chạy:
sqlSave(myconn2, MainClmDF2, tablename = "##R_Claims_Data", verbose=TRUE, rownames= FALSE, varTypes=columnTypes)
Sau đó đầu tôi rụng rời vì nó hoạt động! Tôi thực sự hy vọng điều này sẽ giúp ai đó trong tương lai. Đây là các liên kết đã giúp tôi đến thời điểm này: