これは、時間に敏感な/緊急の問題です。RODBCパッケージを使用した多数のSQLクエリを含むRコードがいくつかあります。このコードは、専用のLinuxサーバーで毎朝実行されます。データを取得し、統計を実行して、データをMSSQLDBに挿入し直します。
今日、私たちのsysarchはUbuntu 12.04.1にアップグレードしました。それ以来、ODBCで多くの問題が発生しています。いくつかの変更を加えた後、ODBC接続を確立できるようになりましたが、今ではさらに大きな問題があります。基本的に、識別されたテーブルが作成/削除されても、CREATEまたはDROPコマンドを実行するたびにRODBCからエラーメッセージが表示されます。例(bts.connect
の結果ですodbcConnect([connection information])
):
> sqlQuery(bts.connect, "SELECT OBJECT_ID('tempdb.dbo.#tempscores')")
1 1050250967
したがって、#tempscoresテーブルが存在します
> sqlQuery(bts.connect, "DROP TABLE #tempscores")
[1] "[RODBC] ERROR: Could not SQLExecDirect 'DROP TABLE #tempscores'"
存在していても、ドロップすることは「できません」
> sqlQuery(bts.connect, "SELECT OBJECT_ID('tempdb.dbo.#tempscores')")
1 NA
しかし、私たちはそれを落としました。
> sqlQuery(bts.connect, "CREATE TABLE #tempscores (dummy int)")
[1] "[RODBC] ERROR: Could not SQLExecDirect 'CREATE TABLE #tempscores (dummy int)'"
また、作成することはできませんが、存在し、そこから選択することができます。
sqlQuery(bts.connect、 "SELECT OBJECT_ID('tempdb.dbo。#tempscores')")1 1066251024 sqlQuery(bts.connect、 "SELECT * FROM #tempscores")[1]ダミー<0行>(または長さ0 row.names)
私は機知に富んでいます。明日の朝、クライアントのためにこれを正常に実行するには、これが本当に必要です。誰かがこの奇妙な行動を引き起こしている可能性があるものを知っていますか?