论坛登陆 注册 文章专区 投稿文章 旧版浏览
首页 | 页界资讯 | 安全动态 | 网络应用 | 组网技术 | 软件应用 | 工具软件 | 网管知识 | 帮助
文学 | 操作系统 | 注 册 表 | 编程语言 | 数 据 库 | 服 务 器 | 网页设计 | 图形图象 | VIP
论坛 | 网络安全 | 安全防范 | 黑客技术 | 硬件学堂 | 路由技术 | 搜索研究 | 站长经验 | 投稿
专题 | 教育频道 | 特色专题 | 精文荟萃 | 聊天通讯 | 网络文学 | 论坛社区 | 广告服务 | 旧版
设为首页 加入收藏
当前位置:首页>>文章>>数据库>>Oracle>>正文

C#中使用Oracle 存储过程笔记

www.xker.com 作者:不详 来源:网络转载 加入日期:2005-11-16 7:35:43
C#中使用Oracle 存储过程笔记:


 

C#中使用Oracle 存储过程笔记

 

1.         调用包含out/ in out类型参数的存储过程

存储过程:

CREATE OR REPLACE PROCEDURE "SITE_EDITSITEDATAEXIST"  

 (id_ number,

name_ varchar2,

httpRoot_ varchar2,

flag out integer )//out 只具备输出功能 in out 为输入/输出型

as

tempNum integer;

begin 

    flag:=0;

    select count(id) into tempNum  from WebSite_Info where Name = name_ and ID<>id_;

  

    if tempNum > 0 then  

        flag:=3;   

    end if;

    select count(id) into tempNum  from WebSite_Info where HttpRoot = HttpRoot_ and ID<>id_;

  

    if tempNum > 0 then  

        flag:=4;   

    end if; 

   

commit;

end ;

/

调用方法:

 

OracleParameter retPar = new OracleParameter(“channelId”, OracleType.Number);

    retPar.Direction = ParameterDirection.Output;//此处和存储过程中的类型匹配

//如果为in out 类型 此处应声//明InputOutput

OracleParameter[] param = new OracleParameter[ 2 ]

{

      new OracleParameter(“subjectId”, OracleType.VarChar, 60)

  };       

param[ 0 ].Value = 0;

 

OracleHelper.ExecuteReader( OracleHelper.CONN_STRING_BASE, CommandType.StoredProcedure,

"site_EditSiteDataExist" ,param);

//有返回值时必须使用ExecuteReader方法

                object val = param[ 3 ].Value;           

        return int.Parse( val.ToString() );

 

 

2.         存储过程返回记录集

存储过程必须写在包中,再调用.

包的写法:

CREATE OR REPLACE PACKAGE pkg_cms

AS

    TYPE myrctype IS REF CURSOR; 

  

    PROCEDURE site_GetSiteData(Id_ number, p_rc OUT myrctype);

   

END pkg_cms;

/

CREATE OR REPLACE PACKAGE BODY pkg_cms

AS

    PROCEDURE site_GetSiteData(Id_ number,p_rc OUT myrctype)

    IS       

    BEGIN       

          OPEN p_rc FOR

            Select  Id, Name, Url, Folder_Name, Desccms, Char_Name,

            DB_Address, DB_User, DB_Password, DB_Name, DB_ConnString, HttpRoot

            From WebSite_Info

            WHERE id=Id_;  

    END site_GetSiteData;         

 END pkg_cms;

/

 

调用:

                     OracleParameter[] param = new OracleParameter[ 2 ]

                {                                                      

                    new OracleParameter(PARM_ID_, OracleType.Number, 8),

new OracleParameter("p_rc", OracleType.Cursor, 2000, ParameterDirection.Output, true, 0, 0, "",DataRowVersion.Default, Convert.DBNull)//此处为包体中声明的游标类型

};

param[ 0 ].Value = siteID;

 

return OracleHelper.ExecuteReader(OracleHelper.CONN_STRING_BASE, CommandType.StoredProcedure,"pkg_cms.site_GetSiteData", param);

//调用时候先写包名

 

 

3.         Oracle存储过程中其它的方法

字符串操作

       INSTR(STR,Maker)//取字符串中字符的位置

       SUBStr(str,beginnum,len)//取子串

       To_char()//将数字转到字符串

       ||  //拼串   相当于+ 号

       LENGTH(Oldword) //取字符串长度

时间类

    to_date('dateStr','YYYY-Mi-DD')//字符串转成date型”’YYYY-MM-DD’”

    Date1-date2=天数



共同交流 欢迎指正  MSN:yutao728@hotmail.com


上一篇:我的权限控制(JBX + struts + hibernate + ORACLE)
下一篇:oracle初始化参数设置

关闭窗口】【浏览次数:】【发送给好友】【收藏此页
相关文章 最新文章 热门文章

·建站之始 始于装IIS 
·完美实现个人建站梦想 全面了解IIS组
·会计专业毕业生自荐书
·应届毕业生求职信
·个人简历表格
·Oracle里汉字长度问题
·Oracle9iAS Containers for J2EE独立
·Oracle9i新特性-使用DBMS_METADATA包
·Linux 下安装 Oracle9i
·在MTS使用ODP读写Oracle是出现无法加
·系统优化 专题
·QQ密码丢失后能做的事情:快速找回密码
·最经典的黑客入门教材
·怎样查找对方的IP地址
·找回QQ密码的注意事项 
·实战系统虚拟利器——MS VPC 2004
·DMA让你的硬盘速度飞起来
·Dreamweaver视频教程
·电脑初学者必备之Windows进程大全
·2005年度主流聊天工具横评
评论 本站声明
会员名称:
密码:匿名 ·注册·忘记密码?
评论内容:
(最多300个字符)
  查看评论
【注】 发表评论必需遵守以下条例:
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
  • 本站大部分为网络转载,如有版权问题,请通知我们,我们立即更正!

设为首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003-2005 xker.com All rights reserved. 网站合作、广告联系QQ:12231446
小新技术网 冀ICP备05002857号