java怎么调用数据库函数

zjiahui 2005-07-19 11:45:27
callStmt = con.prepareCall("{call testAA(?,?)}");
callStmt.setString(1,"000000000026");
callStmt.setString(2,"添加添加添加");
if (callStmt.executeUpdate()==0){
System.out.println("============success================");
}else{
System.out.println("============failure================");
}


函数:
function testAA(id in varchar2,na in varchar2)RETURN VARCHAR2
is
begin
insert into table(id, name ) values(id,na);
commit;
end testAA;
...全文
777 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
star_str 2005-07-19
  • 打赏
  • 举报
回复
sql 是string类型的,你自己看着办把
zjiahui 2005-07-19
  • 打赏
  • 举报
回复
不能调用函数吗,只能调用过程???
mofeir 2005-07-19
  • 打赏
  • 举报
回复
'TESTAA' 不是过程或尚未定义

你自己写一个procedure去调用TESTAA

然后在JDBC调用这个procedure不就可以了。
zjiahui 2005-07-19
  • 打赏
  • 举报
回复
提示错误
java.sql.SQLException: ORA-06550: 第 1 行, 第 7 列:
PLS-00221: 'TESTAA' 不是过程或尚未定义
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
sikuan 2005-07-19
  • 打赏
  • 举报
回复
function testAA(id in varchar2,na in varchar2)RETURN VARCHAR2
is
begin
insert into table(id, name ) values(id,na);
commit;
end testAA;

没有return,为什么定义成function ? 定义成procedure才合理
sikuan 2005-07-19
  • 打赏
  • 举报
回复
当然可以直接调用阿

returnType:输出参数序号 int 类型
callStmt = con.prepareCall("{? = call testAA(?,?)}");
callStmt.registerOutParameter(1, returnType);
callStmt.setString(2,"000000000026");
callStmt.setString(3,"添加添加添加");
callStmt.execute();
result = cstmt.getObject(1);
yu_en_yun_1982 2005-07-19
  • 打赏
  • 举报
回复
up
zjiahui 2005-07-19
  • 打赏
  • 举报
回复
java不能直接调用函数吗???怎么调用???
zjiahui 2005-07-19
  • 打赏
  • 举报
回复
楼上什么意思???

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧