oracle数据库一个简单的问题

来源:百度知道 编辑:UC知道 时间:2024/09/28 06:47:26
我是oracle的初学者,最近做一个关于写简单过程的问题,老编译不过,想请教一下各位高手们,高分送给最先回答最先正确的回答者,在线等待:

题目是这样的:
1:有个成绩表,里头有分数,学分和课程号字段,在成绩表中所有成绩高于70分(含70分)的学生添加学分,规则如下:(通过过程实现)
课程号为“1”开始的课程,其学分为2分;
课程号为“2”开始的课程,其学分为3分;
所有未及格的学生成绩,对应的学分为0

2:有个学生信息表,学生信息表中有个叫做性别的字段,里头的数值全部都是0和1,要求将所有原值为“1”的记录性别更改为“男”,原值为0的记录性别值更改为“女”;(通过过程实现)

我的答案编译老出错不过,内容如下:
1:
create or replace procedure dd
as
begin
update 成绩表
set 学分=2
where 总成绩>=70 and 课程号=’1%’;
update 成绩表
set 学分=3
where 总成绩>=70 and 课程号=’2;

end dd;
/

2:

Create or replace procedure XX
as
Begin
update 学生信息表
set 性别='男'
where 性别='1';
update 学生信息表
set 性别='女'
where 性别='0';

End XX;
/

****************
问题1:
****************
create or replace procedure dd
as
begin
update 成绩表
set 学分=2
where 总成绩>=70 and 课程号 like '1%';
commit;
update 成绩表
set 学分=3
where 总成绩>=70 and 课程号 like '2%';
commit;
end dd;
/

****************
问题2:
****************
你写的没有问题,如果执行出错的话,很有可能是你的【性别】字段的类型不能存储【'男'、'女'】,存储【'男'、'女'】至少要求【char(2)或者varchar(2)】

---
以上,希望对你有所帮助。

给你介绍个工具PLSQL Developer。
编译不过是语法错误,这样的问题自己搞定吧。
另外记得要commit;

你的学生信息表字段是什么类型的?
与你插入的数据类型是否匹配!

把 课程号=’1%’ 的 "=" 号换成like
如果再不成功就是数据类型匹配的问题了

where 总成绩>=70 and 课程号=’1%’;
这是你的原句子,like '1%';
where 总成绩>=70 and 课程号 like '2%';