gpt4 book ai didi

Java:调用oracle数据库中的存储过程

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:54:50 25 4
gpt4 key购买 nike

编辑:虽然这个问题中的一些答案可能会帮助其他人解决不同的问题,但该解决方案实际上与数据库连接上自动提交功能的一些错误有关!在执行查询后强制提交会导致数据库反射(reflect)更改,因此下面显示的代码是调用此类存储过程的正确方法

我试图在 Oracle 数据库中调用一个简单的存储过程。

过程是这样的:

procedure clear_orderProcDtlByOrdId(p_order_id in order_header.order_id%type,
p_transaction_id in sl_order_processing_dtl.transaction_id%type DEFAULT NULL,
p_item_action_id in sl_order_processing_dtl.item_action_id%type DEFAULT NULL )
...

我遇到问题的 java 代码如下所示

    try 
{
CallableStatement storedProc = conn.prepareCall("{call PKG_PI_FRAUD.clear_orderProcDtlByOrdId(?)}");
storedProc.setString(1, orderID);
storedProc.execute();
}
catch (SQLException e)
{
e.printStackTrace();
}

我根本没有收到任何错误,但是没有反射(reflect)出数据库更改。当我在 SQL Developer 中运行该过程时,我看到了结果。我认为这可能是因为提交问题,但我建立的连接处于自动提交模式。

如有任何帮助,我们将不胜感激!

最佳答案

虽然这个问题中的一些答案可能会帮助其他人解决不同的问题,但该解决方案实际上与数据库连接上自动提交功能的一些错误有关!在执行查询后强制提交会导致数据库反射(reflect)更改,因此问题中显示的代码是调用此类存储过程的正确方法!

关于Java:调用oracle数据库中的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14900708/

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