是否可以使用 JDBC 到 ODBC 桥接进行 SQL 连接?

Posted

技术标签:

【中文标题】是否可以使用 JDBC 到 ODBC 桥接进行 SQL 连接?【英文标题】:Are SQL concatenations possible using the JDBC to ODBC bridge? 【发布时间】:2012-09-14 20:52:24 【问题描述】:

当我使用 MS Access 中的字段连接运行查询时,我可以编写以下内容并且它工作正常:

SELECT e.FirstName + " " + e.LastName + " " + e.MiddleName AS Attendant FROM (EMPLOYEES e INNER JOIN PAY pay ON e.SocialSecurityNumber = pay.Pay_Emp_ID) INNER JOIN Patients pat ON pay.Pay_Pat_ID = pat.PatientID;

但如果我尝试使用 SQuirreL SQL 中的 JDBC / ODBC 桥运行相同的查询,则会收到一条错误消息:

Error: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
SQLState:  07001
ErrorCode: -3010

ODBC 是否需要一些不同于 MS-Access 的其他语法?

【问题讨论】:

【参考方案1】:

Access ODBC 驱动程序允许连接,但这些双引号字符似乎存在问题……至少在这种情况下是这样。根据 VBScript 的测试,我认为如果您用单引号代替双引号,您的查询可能会起作用:

SELECT e.FirstName + ' ' + e.LastName + ' ' + e.MiddleName AS Attendant
FROM
    (EMPLOYEES e INNER JOIN PAY pay
    ON e.SocialSecurityNumber = pay.Pay_Emp_ID)
    INNER JOIN Patients pat
    ON pay.Pay_Pat_ID = pat.PatientID;

但是,我不了解 Java,因此不知道该桥接功能是否会以某种方式混淆 ODBC 通信。但是直接通过 Access ODBC 驱动程序提交该查询确实对我有用。

【讨论】:

我认为您对双引号字符的看法是正确的,由于某种原因它不喜欢它们,每次我在查询中使用它们时都会遇到相同的参数错误。

以上是关于是否可以使用 JDBC 到 ODBC 桥接进行 SQL 连接?的主要内容,如果未能解决你的问题,请参考以下文章

JDBC-ODBC桥接器连接Access数据库

使用JDBC

如何在 Jython 中安装 ODBC 库

JDBC数据库操作

JDBC 和 ODBC 后端信息

JAVA中如何通过JDBC-ODBC桥来连接SQLServer数据库