我的公司使用Vertica。我們有pyodbc連接到它的Python應用程序。我在Mac(Snow Leopard)上完成了大部分開發工作,不幸的是,Vertica還沒有發佈Mac版的ODBC驅動程序。但他們確實有JDBC驅動程序。我不認爲在Jython中開發是一個很好的折衷方案。有沒有辦法使用ODBC驅動程序使用JDBC驅動程序?某種類型的ODBC連接器?在JDBC驅動程序中使用ODBC應用程序
回答
編輯:更新Vertica的5/6可以在這裏找到https://github.com/serbaut/psycopg2
這裏有一個補丁,使psycopg2 2.2.1工作,Vertica的4.0。不需要ODBC。
diff --git a/psycopg/connection_int.c b/psycopg/connection_int.c
index 902fdbb..b07eee8 100644
--- a/psycopg/connection_int.c
+++ b/psycopg/connection_int.c
@@ -280,6 +280,10 @@ conn_setup(connectionObject *self, PGconn *pgconn)
pgres = psyco_exec_green(self, psyco_datestyle);
}
+ if (self->server_version == 0 && self->protocol == 3) { /* vertica */
+ self->encoding = strdup("UTF8");
+ self->isolation_level = 0;
+ } else {
if (pgres == NULL || PQresultStatus(pgres) != PGRES_COMMAND_OK) {
PyErr_SetString(OperationalError, "can't set datestyle to ISO");
IFCLEARPGRES(pgres);
@@ -335,7 +339,7 @@ conn_setup(connectionObject *self, PGconn *pgconn)
return -1;
}
self->isolation_level = conn_get_isolation_level(pgres);
-
+ }
Py_UNBLOCK_THREADS;
pthread_mutex_unlock(&self->lock);
Py_END_ALLOW_THREADS;
diff --git a/psycopg/typecast_builtins.c b/psycopg/typecast_builtins.c
index e8e5a1a..45b9dbc 100644
--- a/psycopg/typecast_builtins.c
+++ b/psycopg/typecast_builtins.c
@@ -1,15 +1,15 @@
static long int typecast_NUMBER_types[] = {20, 23, 21, 701, 700, 1700, 0};
-static long int typecast_LONGINTEGER_types[] = {20, 0};
+static long int typecast_LONGINTEGER_types[] = {6, 20, 0};
static long int typecast_INTEGER_types[] = {23, 21, 0};
-static long int typecast_FLOAT_types[] = {701, 700, 0};
-static long int typecast_DECIMAL_types[] = {1700, 0};
-static long int typecast_UNICODE_types[] = {19, 18, 25, 1042, 1043, 0};
+static long int typecast_FLOAT_types[] = {7, 701, 700, 0};
+static long int typecast_DECIMAL_types[] = {16, 1700, 0};
+static long int typecast_UNICODE_types[] = {8, 9, 19, 18, 25, 1042, 1043, 0};
static long int typecast_STRING_types[] = {19, 18, 25, 1042, 1043, 0};
-static long int typecast_BOOLEAN_types[] = {16, 0};
-static long int typecast_DATETIME_types[] = {1114, 1184, 704, 1186, 0};
-static long int typecast_TIME_types[] = {1083, 1266, 0};
-static long int typecast_DATE_types[] = {1082, 0};
-static long int typecast_INTERVAL_types[] = {704, 1186, 0};
+static long int typecast_BOOLEAN_types[] = {5, 0};
+static long int typecast_DATETIME_types[] = {12, 13, 1114, 1184, 704, 1186, 0};
+static long int typecast_TIME_types[] = {11, 15, 1083, 1266, 0};
+static long int typecast_DATE_types[] = {10, 1082, 0};
+static long int typecast_INTERVAL_types[] = {14, 704, 1186, 0};
static long int typecast_BINARY_types[] = {17, 0};
static long int typecast_ROWID_types[] = {26, 0};
static long int typecast_LONGINTEGERARRAY_types[] = {1016, 0};
是的,有ODBC-over-JDBC橋接器。其中包括OpenLink,其中一款適用於Mac OS。
我希望豹發行工作在雪豹 – 2010-04-23 08:16:44
嗯,我怎麼用這個東西? – 2010-04-23 21:22:17
我還沒試過。但是,該產品包含基本支持(http://support.openlinksw.com/supportweb/SupportServicesFAQ#SupportContractNeeded)。 – 2010-04-24 01:48:40
由於Vertica的6還有爲Mac OS X原生的ODBC驅動程序可從https://my.vertica.com門戶
- 1. jdbc odbc驅動程序
- 2. Sun JDBC ODBC驅動程序或MSSQL JDBC驅動程序
- 3. 在Qt中使用ODBC驅動程序
- 4. DB2連接VS ODBC/JDBC驅動程序
- 5. 支持Android的Jdbc Odbc驅動程序
- 6. 爲JDBC源-XXX應用程序定製JDBC驅動程序
- 7. 使用HSQLDB JDBC驅動程序的CSV SQL驅動程序
- 8. Hibernate中使用的JDBC驅動程序
- 9. 錯誤使用JDBC-ODBC橋驅動程序連接到Oracle
- 10. ODBC驅動程序13和ODBC驅動程序11
- 11. 使用64位postgresql odbc驅動程序
- 12. 使用ODBC驅動程序setAttribute到PDO?
- 13. MySQL JDBC驅動程序使用遷飛
- 14. 推薦用於Oracle的ODBC-JDBC橋驅動程序
- 15. ODBC驅動程序Salesforce的
- 16. AS/400 ODBC驅動程序
- 17. 實現ODBC驅動程序
- 18. ODBC驅動程序丟失
- 19. CR Oracle ODBC驅動程序
- 20. ODBC驅動程序錯誤
- 21. 放置JDBC驅動程序以使用Java類在Web應用程序
- 22. 處理兩個JDBC驅動程序的通用JDBC驅動程序
- 23. 使用Mysql ODBC驅動程序將vb6應用程序升級到visual studio 2008
- 24. 您引用monetdb ODBC驅動程序.NET
- 25. 驅動程序ODBC不適用於MySQL
- 26. 用於C++的ODBC驅動程序
- 27. 更好理解ODBC ODBC驅動程序
- 28. MySQL jdbc驅動程序
- 29. 加載JDBC驅動程序
- 30. 5型JDBC驅動程序
我只是假設這回答了這個問題。儘管如此,我還是無法驗證,因爲我很久沒有需要Vertica了。 – 2012-10-10 01:29:22