gpt4 book ai didi

java - 为什么registerOutParameter不接受OracleTypes.VARCHAR?

转载 作者:行者123 更新时间:2023-12-01 10:58:08 26 4
gpt4 key购买 nike

我正在使用 spring jdbctemplate 来获取数据库数据,并且我想要检索结果的存储过程具有输入和输出参数。

我使用 CallableStatement 在 procedureCall 中传递此参数,但是当我指定一些 OracleTypes.VARCHAR 时,jdeveloper 在表达式中添加下划线。

CallableStatementCreator creator = new CallableStatementCreator(){
String sql = "{call procedure(?,?)}";
oracle.jdbc.OracleCallableStatement cs = (oracle.jdbc.OracleCallableStatement)connection.preparecall(sql);

cs.setLong(1,10000);
cs.registerOutParameter(1,OracleTypes.VARCHAR);
return cs;
}

return (MyObject)jdbcTemplate.execute(creator,new CallableStatementCallback(){
public Object doInCallableStatement(CallableStatement cs) throws SQLException{
cs.execute();

MyObject myObject = new MyObject();
myObject.setMessage(cs.getString(1));
return myObject;
}
});
}

最佳答案

我使用 eclipse 和 jdbc,而不是 JDeveloper 和 spring,但在您可能想要尝试的以下操作上取得了成功。

替换:

cs.registerOutParameter(1,OracleTypes.VARCHAR);

cs.registerOutParameter(1,oracle.jdbc.OracleTypes.VARCHAR);

关于java - 为什么registerOutParameter不接受OracleTypes.VARCHAR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33508164/

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