gpt4 book ai didi

java - 通过 JDBC 调用的匿名 block 执行无误但不运行

转载 作者:行者123 更新时间:2023-11-30 11:53:25 26 4
gpt4 key购买 nike

这里可能遗漏了一些微不足道的东西,但我在 Oracle 10g 上运行的 Java 应用程序中有一个函数,它会在 BEGIN... 中生成一堆插入和删除语句;结尾;堵塞。

当我执行该语句时,它运行时没有错误,但没有将值插入/删除到数据库中。如果我将要运行的 SQL 复制到 SQL Developer 中并执行它,它会按预期工作。

示例 SQL...

BEGIN
INSERT INTO tablea_archive (col1,col2,col3)
SELECT col1,col2,col3 FROM tablea;
DELETE FROM tablea;
INSERT INTO tableb_archive (col1,col2,col3)
SELECT col1,col2,col3 FROM tableb;
DELETE FROM tableb;
END;

我尝试过使用 execute() 和 executeUpdate() 通过准备好的、可调用的和普通的语句来运行代码,但没有任何乐趣。

谁能指出我做错了什么?

最佳答案

我会尝试类似的东西

BEGIN
INSERT INTO tablea_archive (col1,col2,col3)
SELECT col1,col2,col3 FROM tablea;
RAISE_APPLICATION_ERROR(-20001,'Inserted '||sql%rowcount||' rows');
END;

您的错误处理应该给您某种形式的消息,说明 INSERT 虽然插入了多少行。如果您没有错误记录,请查看 recording errors on the database end

我怀疑是错误的数据库还是错误的模式。

关于java - 通过 JDBC 调用的匿名 block 执行无误但不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6285218/

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