刚刚接触存储过程,有些简单的问题,想问一下
有这么一个学生表: 
CREATE TABLE student 

   sno VARCHAR2(7) PRIMARY KEY, 
   sname VARCHAR2(20) NOT NULL, 
   sage NUMBER(2) NOT NULL 
);上面的表要创建一个查询的存储过程,要求:
SELECT * FROM student;
这个简单的过程应该怎么创建?头一次接触存储过程,请示详细并可以执行的源码,不要一代而过 。

解决方案 »

  1.   

    SELECT * FROM student;
    这个不需要用存储过程的,能用语句完成的就不要去用过程嘛
    在oracle中select 要与into 配合使用
    也就是说 你查询出来的东西要有个地方放
      

  2.   


    create or replace procecdure 过程名 参数
    is
    begin语句 do something;
    end;
      

  3.   

    -- 实例:Oracle存储过程返回数据集-- i_address 是存储过程的输入参数,o_cur是存储过程的输出游标参数,用以获取返回的结果集!
    CREATE OR REPLACE PROCEDURE userinfo_proc(i_address VARCHAR2, o_cur OUT SYS_REFCURSOR)
    IS
      sqlstr VARCHAR2(200); -- 定义变量,用以存放SQL语句
    BEGIN
      sqlstr := 'SELECT Id, Name, Sex, Age, Address FROM userinfo WHERE Address = :i_address'; -- 给SQL变量赋值,其中 :i_address 是绑定变量,以提高执行效率!
      OPEN o_cur FOR sqlstr USING i_address; -- 给游标变量赋值
    END;
    /set serveroutput on;
    var c_cur refcursor;
    exec userinfo_proc('北京',:c_cur);
    print c_cur;
      

  4.   

    create or replace procecdure 过程名 (参数)
    is
    beginSELECT * FROM student;
    end;
      

  5.   


    create or replace PROCEDURE PRO_NAME(cur_name out SYS_REFCURSOR)  --cur_name:为输出游标,调用时不用传参数
    ASBEGIN  open cur_name for
           select * from student;END PRO_NAME;
      

  6.   


    create or replace procedure p_stu(no student.sno%type,cur out sys_refcursor)
    as
    begin
    open cur select * from student where sno=no;
    end;
    --调用
    var cur1 refcursor
    exec p_stu(学号,:cur1)
    print cur1
    create or replace procedure p_stu(cur out sys_refcursor)
    as
    begin
    open cur select * from student;
    end;--调用
    var cur1 refcursor
    exec p_stu(:cur1)
    print cur1
      

  7.   

    Oracle 开发之 REF_CURSOR