gpt4 book ai didi

java - 在 java 中调用 oracle PL/SQL 函数 - 无效的列类型错误

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:47:52 25 4
gpt4 key购买 nike

我想从 java 类中调用一个 plsql 函数,但该函数 (isValidPeriod) 返回一个 boolean 数据类型,而 JDBC 不支持它

最佳答案

该限制有一个简单的解决方法,它不需要包装函数,只需将 boolean 函数本身包装在 CASE 语句中并使用 Integer 进行绑定(bind):

stmt = conn.prepareCall(
"BEGIN"
+ " ? := CASE WHEN (myBooleanFuncInOracle()) "
+ " THEN 1 "
+ " ELSE 0"
+ " END;"
+ "END;");

stmt.registerOutParameter(1, Types.INTEGER);

// exec
stmt.execute();

// get boolean from Integer
boolean myBool = (stmt.getInt(1) == 1);

如果您不能或不想更改您的函数,甚至不能创建包装函数,即在遗留数据库中,这非常有用。

关于java - 在 java 中调用 oracle PL/SQL 函数 - 无效的列类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17162197/

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