Marklogic无法使用ODBC app server返回超级数据库的SQL响应

Marklogic无法使用ODBC app server返回超级数据库的SQL响应,odbc,marklogic,Odbc,Marklogic,我们使用的是MarkLogic 9.0-11。我们有一个连接到超级数据库的ODBC应用程序服务器。这个超级数据库有两个子数据库 我们正在使用具有管理员权限的管理员用户。当我们使用admin user登录到qconsole并在下拉列表中选择我们的超级数据库时,运行selectsql查询没有问题,我们将得到如下所示的预期结果 Select count{*} from VehicleTable Result 500 [testuser@testdev001 ~]$ /usr/local/bin/i

我们使用的是MarkLogic 9.0-11。我们有一个连接到超级数据库的ODBC应用程序服务器。这个超级数据库有两个子数据库

我们正在使用具有管理员权限的管理员用户。当我们使用admin user登录到qconsole并在下拉列表中选择我们的超级数据库时,运行selectsql查询没有问题,我们将得到如下所示的预期结果

Select count{*} from VehicleTable
Result  500
[testuser@testdev001 ~]$ /usr/local/bin/isql -v MarkLogicSQL admin admintest123
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> Select count{*} from VehicleTable

+------------+
| count(*)   |
+------------+
| 0          |
+------------+
SQLRowCount returns 1
1 rows fetched
SQLRowCount returns -1
1 rows fetched
但是,如果我在linux框中使用来自ODBC应用程序服务器的SQL查询(该ODBC应用程序服务器连接到superdatabase),如下所示

Select count{*} from VehicleTable
Result  500
[testuser@testdev001 ~]$ /usr/local/bin/isql -v MarkLogicSQL admin admintest123
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> Select count{*} from VehicleTable

+------------+
| count(*)   |
+------------+
| 0          |
+------------+
SQLRowCount returns 1
1 rows fetched
SQLRowCount returns -1
1 rows fetched
[注意,如果我们在ODBC应用程序服务器中附加一个子数据库,那么我们将在SQL query from linux box中获得结果]


有人能提出为什么相同的查询在app server和qconsole上的执行方式不同吗。有什么想法吗?

根据您提供的数据,您的配置可能有问题,但无法说明问题所在。基本上,我只想检查一下,当您在MarkLogic中配置ODBC app server时,您必须提到根、端口、模块、数据库等详细信息。现在,当我们选择database ex testdb(MarkLogic database)时,我们将从Linux框中获得结果,但当我们在ODBC应用程序服务器配置中提到ex“SuperTestdb”的superdatabase时,我们将在Linux框中只获得列名,而不是获得数据。但是,当我们尝试在超级数据库上从查询控制台运行相同的sql查询时,我们得到了正确的结果。这个问题通过升级MarkLogic版本得到解决。根据您提供的数据,您的配置可能有问题,但无法说明问题所在。基本上,我只想检查一下,在MarkLogic中配置ODBC应用程序服务器时,必须提及根、端口、模块和数据库等详细信息。现在,当我们选择database ex testdb(MarkLogic database)时,我们将从Linux框中获得结果,但当我们在ODBC应用程序服务器配置中提到ex“SuperTestdb”的superdatabase时,我们将在Linux框中只获得列名,而不是获得数据。但是当我们尝试在超级数据库上从查询控制台运行相同的sql查询时,我们得到了正确的结果。这个问题通过升级MarkLogic版本得到了解决。