create or replace procedure printrequired (p_Department in class_material.department%type) is 
v_books class_material.required _reading%type;
begin
select required_reading 
  into v_books 
  from class_material
  where department=p_Department;
这里的p_Department 不是还没设定???只是设定了类型?怎么下面就用到了department=p_Department。。不懂。。请帮忙解释下~

解决方案 »

  1.   

    这是个存储过程,在调用执行时会传入参数p_department,这样就确定了值,在编译时只要没有语法错误就会成功,执行时要判断数据的返回情况.如下面的语句来调用此存储过程begin
      printrequired ('10');
    end;
    /
      

  2.   

    已经定义了,在第一行procedure printrequired 后的括号里
      

  3.   

    那p_Department in class_material.department%type是什么意思??不是把p_Department设子为和class_material里的department一个类型???这样也算赋值?
      

  4.   

    楼主买本oracle书看看吧
    看你问了好几个这样基础的问题
    说明你根本就啥都不懂
      

  5.   

    p_Department in class_material.department%type
    p_Department 是定义的参数名
    in代表是传入参数
    class_material.department%type 定义参数的类型:与class_material表的department字段类型一致
    因为后面要把department字段的值赋给这个参数
    你看看pl/sql的存储过程,里面有详细描述