Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

R DBI ODBC error:nanodbc/nanodbc.cpp:3110:07009:[Microsoft][ODBC Driver 13 untuk SQL Server]Indeks Deskriptor Tidak Valid

Saya juga telah berjuang dengan masalah ini selama beberapa bulan. Namun, saya telah menemukan solusi yang dapat membantu Anda juga.

Singkatnya, masalah terjadi ketika kolom teks tertentu tidak muncul setelah kolom bilangan bulat/numerik. Saat kolom tidak disejajarkan dengan benar dalam kueri, kesalahan invalid index dilemparkan dan koneksi Anda mungkin membeku. Masalahnya kemudian adalah, bagaimana saya tahu apa yang harus diletakkan di akhir kueri saya?

Untuk menentukan ini, seseorang biasanya dapat memeriksa kolom menggunakan class() atau typeof() . Untuk memeriksa informasi tersebut dari database, Anda dapat menggunakan kueri seperti:

dbColumnInfo(dbSendQuery(con, "SELECT * from schema.table")) # You may not require the schema part...

Ini akan mengembalikan tabel dengan bidang tipe untuk setiap kolom dalam kumpulan data yang diinginkan. Anda kemudian dapat menggunakan tabel ini sebagai indeks untuk mengurutkan select() penyataan. Kesulitan khusus saya adalah bahwa type bidang dalam tabel adalah semua angka! Namun, saya perhatikan bahwa setiap kolom dengan angka negatif, ketika ditempatkan di akhir pernyataan pilih, memperbaiki kueri saya dan saya dapat menarik seluruh tabel dengan baik. Misalnya, solusi lengkap saya :

# Create my index of column types (ref to the current order)
index <- dbColumnInfo(dbSendQuery(con, "SELECT * from schema.table"))
index$type <- as.integer(index$type) # B/c they are + and - numbers!

# Create the ref to the table
mySQLTbl <- tbl(con, in_schema("schema", "tablename"))

# Use the select statement to put all the + numbered columns first!
mySQLTbl %>%
  select(c(which(index$type>=0),
                 which(index$type<0)))

Adapun alasan mengapa ini terjadi, saya tidak yakin dan saya tidak memiliki hak akses data untuk menggali lebih dalam kasus penggunaan saya



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengekspor data sebagai format CSV dari SQL Server menggunakan sqlcmd?

  2. Temukan objek yang rusak di SQL Server

  3. SQL Query untuk menemukan hari terakhir bulan ini

  4. Apa Tujuan Replikasi Data?

  5. Perbaiki "Setidaknya salah satu argumen untuk COALESCE harus berupa ekspresi yang bukan konstanta NULL" di SQL Server