王雷

支持正版,支持开源

用户操作
[即时聊天] [发私信] [加为好友]
王雷ID:wl076
32279次访问,排名3629好友4人,关注者4
男,五官端正,未婚。
wl076的文章
原创 94 篇
翻译 0 篇
转载 13 篇
评论 5 篇
最近评论
bluehouse1985:Linux 环境下的多核调试
— Intel + Totalview 强强联合!
目前,在软件开发行业,各种性能优异的调试工具层出不穷。但是,它们中的绝大部分都只支持windows环境。即使能支持linux平台,操作起来也很不方便。因此,对于长期在linux上编写程序的开发人员来说,如何调试就成了一个令人头痛的问题!Intel软件 和 Total……
tiexinyue:我装的linux 没法显示中文,你知道怎样配置吗!
opi6655:找了好久了,我还是想解决怎么吧返回结果存在datetable里。
tfzxyinhao:大哥能不能给我做 个安装双操作系统的动画啊 我现在装的是xp的 但是因为学习需要 安装Ubuntu的操作系统 但是上次实验后电脑的所有文件都丢失了 不敢再试了 请大哥一定要帮帮忙 的
我的邮箱 tfzxyinhao@126.com
duyuan912:高手,想拜你为师,学习linux
文章分类
收藏
    相册
    Linux/Unix/*BSD
    ubuntu
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 关于Oracle中select * from where 的存储过程收藏

    新一篇: JavaScript 常用函数 | 旧一篇: 重要网络资源

    熟悉SQL Server的人,都会用这样的方法来创建存储过程:(查询student表的信息)
    create  procedure  pro_sel_all
    as
    select * from  student

    由于在Oracle中没有一个类型去接受一个结果集,而在SQL Server中却是由数据库系统自动返回结果集,然后显示。故如果我们用类似上面的方法来创建,如下:
    create  or  replace  procedure  pro_sel_all
    as
    begin
    select * from  student;
    end  procedure  pro_sel_all;
    则会报错:Warning: Procedure  created  with  compilation  errors.

    那么在解决这个问题的时候有两个方法可以选择,第一种就是用游标来返回结果集合。
    create  or  replace  procedure  pro_sel_all

    is
     cursor  cur_sel_all  is  select  sno,sname,sage,ssёx from  student; --定义游标
         
    c_sno student.sno%type;                                                    --声明变量分别保存student的各列
          c_sname student.sname%type;
          c_sage student.sage%type;
          c_ssex student.ssex%type;
    begin
    open cur_sel_all;
       loop                                                                --循环取数,并将游标数据填充到返回纪录集合中
         fetch cur_sel_all into c_sno,c_sname,c_sage,c_ssex;
         ёxit when cur_sel_all%NOTFOUND;
       --循环退出条件
         if cur_sel_all%FOUND then
                       --打印数据
           
    dbms_output.put_line(c_sno||' '||c_sname||' '||c_sage||' '||c_ssex);   
         end if;
       end loop;
    close cur_sel_all;
    end;
    /

    exec pro_sel_all;                                        
    --执行存储过程

    我们也可以要用包(Package)来完成。在包的说明部分中声明游标和存储过程,在包体中给出存储过程。
    则上面的存储过程,写为:
    create  or  replace  package  pack_ sel_all        
    ------创建包的说明部分
    as
    type  mycursor  is  ref  cursor; --声明游标mycursor;
    procedure  pro_sel_all (curp  out  mycursor );
    --声明存储过程pro_sel_all;
    end  pack_sel_all;
    /

    create  or  replace  package  body  pack_sel_all
      
    ------创建包体部分
    is
    procedure  pro_sel_all(curp  out  cursor)  --curp为游标类型的输出参数
    begin

     
    open  curp  for --将student表中的信息存放到curp中去
     select * from  student;

    end  pro_sel_all;
    end  pack_sel_all;
    /
    这个我花了一阵子才弄明白,弄的头都大了,没办法,脑子笨,呵呵,不过现在已经知道了。

     

    发表于 @ 2007年07月02日 16:40:00|评论(loading...)|编辑

    新一篇: JavaScript 常用函数 | 旧一篇: 重要网络资源

    评论

    #opi6655 发表于2007-11-27 22:10:19  IP: 210.72.26.*
    找了好久了,我还是想解决怎么吧返回结果存在datetable里。
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 王雷