庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>数 据 库>Oracle>经验技巧>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

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

 作者:本站收集   日期:2005-3-18
字号选择〖 〗/ 双击滚屏 单击停止   


 

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


上一篇:oracle初始化参数设置    下一篇:我的权限控制(JBX + struts + hibernate + ORACLE)  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-3-18
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿