| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 818 人关注过本帖
标题:[求助]存储过程的调用.
只看楼主 加入收藏
shithanwa
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-1-30
收藏
 问题点数:0 回复次数:8 
[求助]存储过程的调用.

关于存储过程的疑问????


比如说:有一个学生成绩表(t_score),它有如下字段:学号(stu_id),课程号(cour_id),课程名(cour_name),成绩(score);
现在要通过一个已知的学生学号,删除对应的学生成绩信息.问题是如何写一个存储过程( 学号是由前台输入的),以便JAVA程序调用此过程,删除对应记录?我写的过程出现如下错误:(Warning: Procedure created with compilation errors),不知道where后面怎么写?
请多指教!

搜索更多相关主题的帖子: 过程 存储 调用 
2007-04-19 20:25
天使坠落的眼泪
Rank: 2
等 级:新手上路
威 望:5
帖 子:204
专家分:0
注 册:2006-5-16
收藏
得分:0 
有片段代码么?如果有贴上来,这样说很模糊

樹欲靜而風不止... http://blog./seablue_xj
2007-04-19 22:09
shithanwa
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-1-30
收藏
得分:0 

sql脚本:
create table T_TB0606609_score(
stu_id varchar2(20),
cour_id varchar2(20),
cour_name varchar2(20),
score varchar2(20),
constraint p_score primary key(cour_id)
);

create or replace procedure p_del_score(
stu_id varchar2,
cour_id varchar2,
cour_name varchar2,
score varchar2,
)
is
begin
delete from T_TB0606609_score where p_stu_id=stu_id;
commit;
end p_del_score;

JAVA调用:
public void delScore(String studentId) {
conn = DBHelper.getConnection();
sql = "{call p_del_score(?)}";
try {
cstmt = conn.prepareCall(sql);
cstmt.setString(1, studentID);
cstmt.executeUpdate();

System.out.println("增加数据成功");
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} finally {
try {
if (conn != null)
conn.close();
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}
谢谢指教!


明骚易躲,暗贱难防
2007-04-20 10:53
shithanwa
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-1-30
收藏
得分:0 
大哥帮我看看啊!

明骚易躲,暗贱难防
2007-04-24 20:28
支离破碎
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:737
专家分:0
注 册:2007-1-4
收藏
得分:0 
报的错误是你存储过程写的有问题。。。

你先试一下这个能不能在数据库中运行先

人生漂泊無依,有如浮萍菱花,隨水飄流,你会在我这里停留吗?
[url=http://51mynet.]http://51mynet.[/url]
2007-04-25 09:25
shithanwa
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-1-30
收藏
得分:0 

哦,存储过程中变量没区分开.应该是这样的吧:
sql脚本:
create table T_TB0606609_score(
stu_id varchar2(20),
cour_id varchar2(20),
cour_name varchar2(20),
score varchar2(20),
constraint p_score primary key(cour_id)
);

create or replace procedure p_del_score(
p_stu_id varchar2,
p_cour_id varchar2,
p_cour_name varchar2,
p_score varchar2
)
is
begin
delete from T_TB0606609_score where stu_id=p_stu_id;
commit;
end p_del_score;


明骚易躲,暗贱难防
2007-05-09 00:29
支离破碎
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:737
专家分:0
注 册:2007-1-4
收藏
得分:0 
这个。。。只有你自己调试好存储过程了,N久没搞过这了,都忘光了。。

人生漂泊無依,有如浮萍菱花,隨水飄流,你会在我这里停留吗?
[url=http://51mynet.]http://51mynet.[/url]
2007-05-09 09:06
yidong
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-5-9
收藏
得分:0 

你过程就只需要一个参数,你传那么多进去干嘛?
你调用的时候是"{call p_del_score(?)}";也是一个传参数;
参数个数也不会匹配吧?
而且过程里面就一句SQL;需要用过程吗?

2007-05-09 09:44
shithanwa
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-1-30
收藏
得分:0 
是的传多了没用的参数,但参数还是会匹配的.
"{call p_del_score(?)}"的参数是SQL句中的.

说的就是要调用存储过程,当然不用存储过程都会了;最要人头痛的查询的存储过程.

明骚易躲,暗贱难防
2007-05-10 13:59
快速回复:[求助]存储过程的调用.
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020854 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved