CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Oracle >  开发

菜鸟问一个关于包的问题

楼主zhangjs780206()2003-06-02 14:50:34 在 Oracle / 开发 提问

我刚用oracle,请大家帮忙看一下  
   
  CREATE   OR   REPLACE     PACKAGE   "CLINIC"."GET_MODAL_2_PKG"   as  
      TYPE   myrctype   IS   REF   CURSOR;  
   
        PROCEDURE   GET_MODAL_2   (p_rc   OUT   myrctype);  
  end   GET_MODAL_2_PKG;  
  as  
       
  CREATE   OR   REPLACE     package   body   "CLINIC"."GET_MODAL_2_PKG"     as  
              PROCEDURE   get_modal_2   (p_rc   OUT   myrctype)  
        is  
        BEGIN  
               
                    OPEN   p_rc   FOR  
                          --select   ModelID,depname,ModelName,opername,''   from   InHosCureNameModel   a,dep_table   b,opertable   c  
                          --where   a.depid=b.depid   and   a.operid=c.operid   ;  
                          select   *   from   clinic.operaccount;  
                       
             
  END   get_modal_2;  
  end   GET_MODAL_2_PKG  
  编译已经没有问题(若有就是我写错了)  
   
  但是不知怎么调用  
  这是我的调用方法  
  begin  
  declare   p_rc1   get_modal_2_pkg.myrctype;  
  exec   get_modal_2_pkg.get_modal_2(p_rc1);  
  end;  
  提示错误为  
   
  ERROR   位于第   4   行:  
  ORA-06550:   第   4   行,   第   1   列:  
  PLS-00103:   出现符号   "END"在需要下列之一时:  
  begin   function   package  
  pragma   procedure   subtype   type   use   <an   identifier>  
  <a   double-quoted   delimited-identifier>   form   current   cursor  
   
  问题点数:40、回复次数:3Top

1 楼beckhambobo(beckham)回复于 2003-06-02 15:12:03 得分 40

declare  
  v_ModelID   ...;  
  v_depname   ...;  
  v_ModelName   ...;  
  v_opername   ...;  
  p_rc1   get_modal_2_pkg.myrctype;  
  begin  
  get_modal_2_pkg.get_modal_2(p_rc1);  
  loop  
  fetch   prc1   into   v_ModelID,v_depname,v_ModelName,v_opername;    
  exit   when   p_rc1%notfound;  
  dbms_output.put_line(v_ModelID||v_depname||v_ModelName||v_opername);  
  end   loop;  
  end;  
  /  
  Top

2 楼zhangjs780206()回复于 2003-06-02 15:30:49 得分 0

declare  
    opername   varchar2(10);  
    operid   number(6,1);  
    p_rc1   get_modal_2_pkg.myrctype;  
  begin  
  get_modal_2_pkg.get_modal_2(p_rc1);  
  loop  
  fetch   prc1   into   opername,operid;    
  exit   when   p_rc1%notfound;  
  dbms_output.put_line(opername||operid);  
  end   loop;  
  end;  
  按照你写的那样做了,但是还是不行  
  另外我们以前用sql   server   2000   现在想用oracle   我们的存储过程几乎都是返回记录集然后再客户端html网页中处理,我们用sql   server   2000   时是很方便的,但到oracle后会不会太复杂了  
  错误:  
  ORA-06550:   第   4   行,   第   8   列:  
  PLS-00201:   必须说明标识符   'GET_MODAL_2_PKG.MYRCTYPE'  
  ORA-06550:   第   4   行,   第   8   列:  
  PL/SQL:   Item   ignored  
  ORA-06550:   第   6   行,   第   29   列:  
  PLS-00320:   此表达式的类型说明不完整或格式不正确  
  ORA-06550:   第   6   行,   第   1   列:  
  PL/SQL:   Statement   ignored  
  ORA-06550:   第   8   行,   第   7   列:  
  PLS-00201:   必须说明标识符   'PRC1'  
  ORA-06550:   第   8   行,   第   1   列:  
  PL/SQL:   SQL   Statement   ignored  
  ORA-06550:   第   9   行,   第   11   列:  
  PLS-00320:   此表达式的类型说明不完整或格式不正确  
  ORA-06550:   第   9   行,   第   1   列:  
  PL/SQL:   Statement   ignoreTop

3 楼beckhambobo(beckham)回复于 2003-06-02 16:24:34 得分 0

CREATE   OR   REPLACE     PACKAGE   GET_MODAL_2_PKG   as  
      TYPE   myrctype   IS   REF   CURSOR;  
  end   GET_MODAL_2_PKG;  
  /  
  CREATE   OR   REPLACE     PROCEDURE   get_modal_2(p_rc   OUT   GET_MODAL_2_PKG.myrctype)  
        is  
        BEGIN  
               
                    OPEN   p_rc   FOR  
                          --select   ModelID,depname,ModelName,opername,''   from   InHosCureNameModel   a,dep_table   b,opertable   c  
                          --where   a.depid=b.depid   and   a.operid=c.operid   ;  
                          'select   *   from   clinic.operaccount';  
                       
             
  END   get_modal_2;  
  /  
   
  declare  
    opername   varchar2(10);  
    operid   number(6,1);  
    p_rc1   get_modal_2_pkg.myrctype;  
  begin  
  get_modal_2(p_rc1);  
  loop  
  fetch   p_rc1   into   opername,operid;    
  exit   when   p_rc1%notfound;  
  dbms_output.put_line(opername||operid);  
  end   loop;  
  end;  
  /Top

相关问题

  • 菜鸟菜问!
  • 菜鸟菜问
  • 菜菜鸟问!
  • 菜鸟问题 (菜鸟问)
  • 菜鸟急问包容问题??
  • 菜鸟菜问题
  • 菜鸟菜问题
  • 菜鸟菜问题
  • 菜鸟菜问题
  • 菜鸟中菜鸟提问

关键词

  • sql server 2000
  • oracle
  • sql
  • modal
  • opername
  • myrctype
  • operid
  • pkg
  • modelid
  • depname

得分解答快速导航

  • 帖主:zhangjs780206
  • beckhambobo

相关链接

  • Oracle类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo