CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Oracle >  基础和管理

请问,我想实现存储过程中表名可以设成变量该怎么做啊?

楼主kaka1978(咖咖1978)2004-05-02 15:36:46 在 Oracle / 基础和管理 提问

以下的KF_MT_20040301   必须是"KF_MT_"和当前时间,生成的表名  
  可以做吗?  
  =================================  
   
  CREATE   OR   REPLACE   PACKAGE   BODY   MsMsgPack2   AS  
          PROCEDURE   SelectMsProduct2  
          (  
                  m_da   IN   KF_MT_20040301.da%TYPE,  
                  m_scts   IN   KF_MT_20040301.scts%TYPE,  
                  themsg OUT tmsg,  
                  thescts OUT tscts  
          )   IS  
                  cursor   cur   is   SELECT     *   from   KF_MT_20040301    
                                              WHERE   da   =   m_da   ;  
                  icount   number   default   1;  
          begin  
                  for   c   in   cur   loop  
                      themsg(icount):=c.msg;  
                      thescts(icount):=c.scts;  
                      icount:=icount+1;  
                  end   loop;  
          END   SelectMsProduct2;  
  END   MsMsgPack2; 问题点数:0、回复次数:7Top

1 楼welyngj(无爱)回复于 2004-05-02 15:48:28 得分 0

不动你的意思!  
  可以用execute   immediate   '                     '   动态sqlTop

2 楼ern(与Oracle斗,其乐无穷)回复于 2004-05-02 16:01:59 得分 0

对游标恐怕不行,是用动态表名只能用  
  ...  
  test:='select   * from   '||表名的变量;  
  用execute   immediate   ...来调用Top

3 楼kaka1978(咖咖1978)回复于 2004-05-02 17:16:19 得分 0

我只想把所有出现KF_MT_20040301的地方以变量来代替,可以吗?Top

4 楼kaka1978(咖咖1978)回复于 2004-05-02 17:38:28 得分 0

关键是涉及到游标该如何处理呢?  
  m_da   IN   KF_MT_20040301.da%TYPE  
   
   
  cursor   cur   is   SELECT     *   from   KF_MT_20040301    
                                              WHERE   da   =   m_da   ;  
   
  这两种的改写都有困难呀Top

5 楼atao245993(阿涛)回复于 2004-05-03 13:41:56 得分 0

KF_MT_后随日期,应该这些表是同类表。所以%TYPE应该没什么大问题。  
  在CURSOR声明中是否可以使用变量?好象编译都没法通过。  
   
  是否做个临时表,过程中提取数据记录,然后再对临时表中内容处理?可以去掉游标。  
   
  在过程内部使用变量表名和动态SQL就没问题了  
  Top

6 楼hyxyliuyan(不见不散)回复于 2004-05-03 23:04:27 得分 0

关注ing!我也遇到了这样的问题。Top

7 楼zhanghuazhanghome(517(张))回复于 2004-05-04 10:52:28 得分 0

同意atao245993(阿涛)的说法,应该可以的Top

相关问题

  • 6个表,4个变量,要实现最多组合功能的存储过程
  • 存储过程中的变量列表问题
  • 在存储过程中如何使用表名变量?
  • 关于存储过程中的表名可否使用变量?
  • 在存储过程中表名能做变量传吗?
  • 存储过程中怎样把表名作为变量??
  • 表名为变量的存储过程怎么写?
  • 表变量与存储过程的问题
  • 请教,如何向存储过程传递表变量?
  • 存储过程中表名能使用变量来代替吗?

关键词

  • kf
  • 变量
  • mt
  • 表名
  • 游标
  • icount
  • da
  • scts
  • 表
  • cur

得分解答快速导航

  • 帖主:kaka1978

相关链接

  • Oracle类图书

广告也精彩

反馈

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