• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
编写一个接受变量的存储过程
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
编写一个接受变量的存储过程
软件发布 编写一个接受变量的存储过程
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 文章首页 >> 认证考试 >> Oracle认证 >> Oracle指导 >> 编写一个接受变量的存储过程

编写一个接受变量的存储过程

添加时间: 2008-4-27 2:15:30  作者: Oracle指导  阅读次数:17   来源: http://www.d9soft.com

       

    我想要写一个存储过程,可以接受变量并使用它作为select语句中的表名。下面的代码我无法编译。
  CREATE OR REPLACE PROCEDURE USP_STAT_FEATURE_COUNT (
  P_TABLENAME                                 IN  VARCHAR2
  ,P_PPMS                                      IN  VARCHAR2
  ,P_FEATURE_COUNT                        OUT NUMBER
  )
  IS 

  /******************************************************************************
  NAME:       USP_STAT_FEATURE_COUNT
  PURPOSE: Count of all drawings in the system   ******************************************************************************/
  TBL varchar2(50);
  BEGIN
  TBL := P_TABLENAME;
  SELECT COUNT(OBJECTID) INTO P_FEATURE_COUNT FROM P_TABLENAME WHERE PPMS = P_PPMS;
  COMMIT;
  END USP_STAT_FEATURE_COUNT;
  /
  答:你不能这样做!为什么,你一定会问。因为一方面你想要SQL语句成为基于表名和列值的动态的语句,另一方面你使用了STATIC SQL语句。还有,如果你想要做出任何的数据库更改只需要COMMIT,如果你SELECT数据到PL/SQL 变量的话就不需要。
  你需要使用本来的动态SQL(如果更复杂的话,就是DBMS_SQL)来获得你的目的。
  下面是可以编译的版本。
  CREATE OR REPLACE PROCEDURE USP_STAT_FEATURE_COUNT (
  P_TABLENAME                                 IN  VARCHAR2
  ,P_PPMS                                      IN  VARCHAR2
  ,P_FEATURE_COUNT                        OUT NUMBER
  )
  IS
  /******************************************************************************
  NAME:       USP_STAT_FEATURE_COUNT
  PURPOSE: Count of all drawings in the system ******************************************************************************/
  --TBL varchar2(50);
  BEGIN
  -- TBL := P_TABLENAME;  这个语句不必要
  --  你的P_TABLE_NAME  应该与table和name之间的没有下划线的参数名相匹配
  EXECUTE IMMEDIATE ’ SELECT COUNT(OBJECTID) FROM ’ ||  P_TABLENAME  || ’ WHERE PPMS = ’ ||  P_PPMS
  INTO P_FEATURE_COUNT;
  --  COMMIT 你不需要commit; 
  END USP_STAT_FEATURE_COUNT;
  /

 

上下文章:

 

上一篇文章: 硬件问题导致Oracle痛苦不堪 下一篇文章: Sybase和Oracle的互相导入

相关文章:

  • 教你动用Ps历史画笔美化一个青春美丽动人的MM照片
  • 在ORACLE的存储过程中如何做简单的动态查询
  • Oracle开发人员JAVA存储过程
  • oracle+jsp中blob存储大文本
  • 编写一个接受变量的存储过程

相关软件:

  • 宽盈大型人才招聘求职系统.net(SQL存储过程版) 1.3
  • 网络存储服务器 V2.0
  • 操作系统 -- 安装过程详细图解 一步步教你(图片)从98版到Linux
  • 全面质量管理过程控制系统 V2.2
  • 一个新闻小偷
  • 七盏灯(一个古埃及游戏) V1.0

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

Oracle认证分类导航

  • Oracle动态
  • Oracle指导
  • Oracle题库

本类经典文章推荐

  • Oracle中关于逻辑备份与恢复
  • Oracle开发人员JAVA存储过程
  • 为数据库的表自动生成行号
  • Oracle中的OOP概念
  • 用java从oracle取数
  • 冷备份移植到另一台Solaris机器上
  • 如何将excel数据导入oracle中
  • Oracle10.2g安装记录
  • 数据库监控工具ForOraclev1.2
  • oracle双机群集系统

Oracle指导阅读排行

  • Oracle系统表查询
  • 实例:Oracle导出EXCEL文件
  • Oracle常用的OCI函数上
  • Oracle企业管理器(OEM 2.1)使用...
  • Tomcat+SQLServer连接池配置
  • 如何将excel数据导入oracle中
  • 如何取出某一用户的密码 再原样改...
  • 实例:Oracle导出EXCEL文件
  • 案例学习Oracle错误:ORA-00604
  • 案例学习Oracle错误:ORA-00060

Oracle认证阅读总排行

  • Oracle系统表查询
  • 实例:Oracle导出EXCEL文件
  • Oracle常用的OCI函数上
  • 在ORACLE的存储过程中如何做简单的...
  • Oracle企业管理器(OEM 2.1)使用...
  • Tomcat+SQLServer连接池配置
  • 如何将excel数据导入oracle中
  • AIX下自动启动Oracle数据库与监听...
  • 如何取出某一用户的密码 再原样改...
  • 实例:Oracle导出EXCEL文件

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有