中国站长下载-为中国站长提供最好最全的建站资源! 首 页发布资源有事留言繁體中文
设为首页
加入收藏
联系我们
 
您当前的位置:中国站长下载 -> 文章中心 -> 数据库区 -> MSSQL -> 文章内容  虚拟主机 域名注册 退出登录 用户管理
栏目导航
· ACCESS · MSSQL
· Mysql · DB2
· ORACLE · SYBASE
· 其他相关
热门文章
· sndvol32 - sndvol3...
· [组图] FLASH:《大话李白》...
· 个人网站到底能赚多...
· [图文] Rundll.exe是病毒吗...
· [组图] Flash:制作MV
· 价值12万元的网站SE...
· 网站创业者,你需要...
· 一个成功的网站设计...
· [图文] FLASH:韩国导航条解...
· 中国网站的赚钱模式...
相关文章
· C#中使用反射显示程...
C#中使用Oracle 存储过程笔记
作者:佚名  来源:不详  发布时间:2006-5-9 16:47:59  发布人:chinazhan

 减小字体 增大字体


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


   asp">oracleasp">存储过程asp?tags=C#">C#
 
[] [返回上一页] [打 印] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
中国站长下载
中国站长下载

本页只接受PR>=4 IT类站点连接,申请连接,谢谢您们的支持!希望我们的下载站能够真正帮到中国的站长们!
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图
Copyright © 2005-2006 ChinaZhan.Net. All Rights Reserved .