使用准备好的语句存储空值时 SQL 数据类型无效 [重复]

Posted

技术标签:

【中文标题】使用准备好的语句存储空值时 SQL 数据类型无效 [重复]【英文标题】:Invalid SQL data type while storing null value using prepared statement [duplicate] 【发布时间】:2013-11-21 07:55:59 【问题描述】:

我使用 MS-Access 作为数据库。 在 Ms access 数据库中,我有一个包含 2 列的表,一个是名称,另一个是文档

对于名称,我使用文本数据类型,对于文档,我使用 OLE 对象

如果用户没有选择任何文档,那么我试图在 OLE 对象中插入空值

prepardstmt.setNull(2, java.sql.Types.BLOB);

我来了

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]Invalid SQL data type

例外

你能告诉我哪里做错了吗?

【问题讨论】:

您的标题显示“空指针异常”,但您显示的是 SQLException... 这是什么? 我已经准备好尝试了这些但没有工作.. @gordThompson 我尝试了那些 DataTypes 但我仍然得到..java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]Invalid SQL data type Expection @GordThompson 你试过prepardstmt.setNull(2, java.sql.Types.VARCHAR); 【参考方案1】:

插入空值使用java.sql.Types.NULL

参考javadocs

【讨论】:

我试过这个但同样的 java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]Invalid SQL data type Expection I am getting... 不幸的是,尽管 Java 文档可能会说什么,但该选项不适用于 Microsoft Access Driver for ODBC 和 JDBC-ODBC Bridge。有关详细信息,请参阅问题here。

以上是关于使用准备好的语句存储空值时 SQL 数据类型无效 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 mysqli 准备好的语句中使用空值

java.sql.SQLSyntaxErrorException-ORA-01722:无效数字 - 准备好的语句

使用准备好的语句将多个带前缀的表移动到存档数据库,为啥这个 MySQL 语句无效?

PHP PDO准备语句给出“无效语法”错误[重复]

DB2 中带有准备好的语句和批处理的“无效数据转换”

在 PHP 中使用准备好的语句/存储过程时如何保护自己免受 SQL 注入?