gpt4 book ai didi

java - 如何使用 JDBC 中的PreparedStatement 在表中存储长值?

转载 作者:行者123 更新时间:2023-12-01 19:31:45 26 4
gpt4 key购买 nike

我有一个 Teradata 表:

 CREATE SET TABLE P_D.SAMPLE
(
ID DECIMAL(18,0),
ISBN DECIMAL(18,0),
TITLE varchar(100) null,
POSITION INT
)

我想从java批量插入:

 private static final String INSERT = "INSERT INTO P_D.SAMPLE (ID,ISBN,TITLE,POSITION) "
+ "VALUES (?,?,?,?)";

public void insert(List<Book> books) {
int booksCount = 0;
int batch_size = 15000;

PreparedStatement preparedStatement = connection.prepareStatement(INSERT);
for (Book book : books) {
preparedStatement.setLong(1, book.geId());
preparedStatement.setLong(2,book.getIsbn());
preparedStatement.setString(3, book.getTitle());
preparedStatement.setInt(4, book.getPosition());
preparedStatement.addBatch();

if (++booksCount % batch_size == 0) {
preparedStatement.executeBatch();
}
}
preparedStatement.executeBatch(); //inserting the remaining books
preparedStatement.close();
}

我收到以下错误:

[Teradata JDBC 驱动程序] [TeraJDBC 16.10.00.03] [错误 1339] [SQLState HY000] 执行PreparedStatement 批处理请求时发生故障。参数集未执行,应使用PreparedStatement的executeUpdate方法单独重新提交。

有什么想法吗?

我尝试按照您在下面的建议单独运行每个语句,但出现错误: [错误 2644] [SQLState HY000] 数据库中没有更多空间

最佳答案

Teradata 数据库错误 2644“数据库中没有更多空间”字面意思是数据库中没有更多空间。数据库中没有更多可用的永久空间。

要解决此错误,您可以增加数据库的永久空间,或者从数据库中删除一些现有对象(例如表)。

关于java - 如何使用 JDBC 中的PreparedStatement 在表中存储长值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59253929/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com