gpt4 book ai didi

java - 使用 springframework SimpleJdbcCall 捕获 RAISE_APPLICATION_ERROR

转载 作者:行者123 更新时间:2023-12-01 16:54:14 24 4
gpt4 key购买 nike

我有一个 PL/SQL 过程,我可以调用

RAISE_APPLICATION_ERROR (-20001, 'Illegal id');

如果出现问题。

这似乎有效,因为该过程会退出并在应该时抛出错误。

我使用以下方式调用此过程

simpleJdbcCall.execute(myargs)

但是当我捕获异常时,它是 DataAccessException 类型。原因是ORA-01403:没有找到数据

我似乎没有办法从 RAISE_APPLICATION_ERROR 调用中获取号码或消息。我怎样才能得到这些值?

最佳答案

我们在应用程序中做了同样的事情;但是,ORA-20001 异常应该作为 UncategorizedSQLException 到达 Spring。如果您看到 ORA-01403,那么我怀疑您的程序可能以不同的方式失败:您确定 Spring 正在传递与您进行单元测试相同的参数吗?

如果您让 PL/SQL 过程除了引发 ORA-20001 之外什么都不做,您还会从 Spring 获得 ORA-01403 吗?您确定正在对 PL/SQL 进行单元测试并将 Java 应用程序附加到同一个数据库吗?

关于java - 使用 springframework SimpleJdbcCall 捕获 RAISE_APPLICATION_ERROR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61622512/

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