java 调用 存储过程 30

PROCEDUREGet_Cust_Info(Pi_CustnoINVARCHAR2,Po_Cust_InfoINOUTNOCOPYt_Cust_Info,Po_Eror... PROCEDURE Get_Cust_Info(Pi_Custno IN VARCHAR2,
Po_Cust_Info IN OUT NOCOPY t_Cust_Info,
Po_Erorno OUT CHAR,
Po_Erortx OUT VARCHAR2);

TYPE t_Cust_Info IS RECORD(
Custno Cifs_Cfb_Cust.Custno%TYPE, --客户号
Custna Cifs_Cfb_Cust.Custcn%TYPE, --客户中文名称
Custen Cifs_Cfb_Cust.Custen%TYPE, --客户英文名称
Custtp Cifs_Cfb_Cust.Custtp%TYPE, --客户类型
Custlv Cifs_Cfb_Cust.Custlv%TYPE, --客户级别
Custst Cifs_Cfb_Cust.Custst%TYPE, --客户状态
Opendt Cifs_Cfb_Cust.Opendt%TYPE, --客户开户日期
Openbr Cifs_Cfb_Cust.Openbr%TYPE, --开户行
Openus Cifs_Cfb_Cust.Openus%TYPE, --开户柜员号
Risklv Cifs_Cfb_Cust.Risklv%TYPE --风险等级
);
第一个是存储过程 第二个是type 现在java要调用上面的存储过程,传入的参数不对,

String sql = "{CALL Pkg_Extl_Ltts.Get_Cust_Info(?,?,?,?)}";
CallableStatement callStmt = this.getSession().connection()
.prepareCall(sql);

callStmt.setString(1, custNo);
// 注册out类型的参数
callStmt.registerOutParameter(2, OracleTypes.STRUCT);
callStmt.registerOutParameter(3, OracleTypes.VARCHAR);
callStmt.registerOutParameter(4, OracleTypes.VARCHAR);
callStmt.execute();

java.sql.SQLException: ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'GET_CUST_INFO'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

异常提示为参数不正确 就是type参数那里不对 record应该对应哪个类型呢,自定义类型java应该怎么去调用
展开
 我来答
0o萧雨o0
2010-06-20 · TA获得超过1221个赞
知道小有建树答主
回答量:642
采纳率:0%
帮助的人:465万
展开全部
oracle我也不太熟,我的思路是:
返回一个cursor,在java中通过移动cursor得到result,以前代码的片段:

# CallableStatement cs = conn.prepareCall("{call getAll(?,?)}");
# cs.registerOutParameter(1,oracle.jdbc.OracleTypes.NUMBER);
# cs.registerOutParameter(2,oracle.jdbc.OracleTypes.CURSOR);
# cs.execute();
# //输出
# System.out.println("total="+cs.getDouble(1));
# //通过游标得到resultSet
# ResultSet rs = (ResultSet)cs.getObject(2);
# while(rs.next()){
# System.out.println("id="+rs.getString("id")+" name="+rs.getString("name"));
# }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式