关于oracle中存储过程的问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 13:40:41
(1)使用数据库中的学生表、课程表、选课表创建一个带参数的存储过程—cjjicx。该存储过程的作用是:当任意输入一个学生的姓名时,将从三个表中返回该学生的学号、选修的课程名称和课程成绩。
create or replace procedure cjjicx
(name IN varchar2)
as
begin
select 学生.学号,课程名称,成绩 from 学生,选课,课程 where 学生.学号=选课.学号 and 选课.课程号=课程.课程号 and 姓名=name;
end cjjicx;

老是报编译出错,请问问题在哪里啊,并讲讲Oracle存储过程的注意事项

过程要么不带参数,要带参数就要和过程体中的参数类型一致,你的参数上面定义了name的类型,下面过程体参数却是另外3个类型,当然出错。
另外,需要返回值的要写成函数,过程是没有return的,要返回的值不止一条的时候要用游标。