WEB开发网      濠靛倻鏅悵顖涚附閽樺鐎诲ù婊庡亾缁辨帗鎷呴悩鍨暠濞戞挴鍋撳ù鐘烘閸ㄥ孩绂嶉锝喰﹂柟瀛樺灣濠婃垿鎯冮崟顏嗩伇濞寸姾妫勬慨鈺呭礉濞戝磭骞㈤悹鍥у槻閸ㄥ孩绂嶉敓锟� ---闁挎洩鎷�
开发学院数据库Oracle 使用ADO.NET访问Oracle 9i存储过程(下) 阅读

使用ADO.NET访问Oracle 9i存储过程(下)

 2007-05-13 12:30:03 来源:WEB开发网 闁靛棴鎷�闁告垵绻愰惃顒傗偓娑欍仦缂嶏拷濠⒀呭仜閵囧洨鈧稒銇炵紞锟�闁靛棴鎷�  闁稿繗娅曢弫鐐哄级閵婏缚鑸瀣仧濞堟垵顕ラ鐓庤Е
核心提示:对于 HR 架构的默认安装,控制台输出显示了员工 101 的两个记录中每个记录的字段(用分号分隔):101;9/21/1989 12:00:00 AM;10/27/1993 12:00:00 AM;AC_ACCOUNT;110;101;10/28/1993 12:00:00 AM;3/15/1997 12:00:00

对于 HR 架构的默认安装,控制台输出显示了员工 101 的两个记录中每个记录的字段(用分号分隔):

101;9/21/1989 12:00:00 AM;10/27/1993 12:00:00 AM;AC_ACCOUNT;110;

101;10/28/1993 12:00:00 AM;3/15/1997 12:00:00 AM;AC_MGR;110;

上述代码显示,包中的过程是使用包名称 (ELECT_JOB_HISTORY) 和过程的名称(在此情况下为 GetJobHistoryByEmployeeId)指定的,二者之间用句点分隔。

代码还说明了如何定义结果集的 REF CURSOR 参数。请注意,数据类型为 OracleType.Cursor,方向为 ParameterDirection.Output。

还请注意,在访问 REF CURSOR 中的结果集的整个过程中,连接都保持打开状态。

如果包返回多个游标,则 DataReader 会按照您向参数集合中添加它们的顺序来访问这些游标,而不是按照它们在过程中出现的顺序来访问。可使用 DataReader 的 NextResult() 方法前进到下一个游标。

返回单个值的存储过程

OracleCommand 类的 ExecuteOracleScalar() 方法用于执行将单个值作为 OracleType 数据类型返回的 SQL 语句或存储过程。如果命令返回一个结果集,则该方法会返回第一行第一列的值。如果返回了 REF CURSOR,而不是返回了 REF CURSOR 所指向的第一行第一列的值,则该方法会返回一个空引用。OracleCommand 类的 ExecuteScalar() 方法类似于 ExecuteOracleScalar() 方法,只不过它将值作为 .NET 框架数据类型返回。

尽管如此,在使用 Oracle 存储过程时,这两个方法都没有用。Oracle 存储过程不能将值作为 RETURN 语句的一部分返回,而只能将其作为 OUT 参数返回。有关信息,请参阅不返回数据的存储过程一节。同时,除了通过 REF CURSOR 输出参数以外,您不能返回结果集。下一节将对此进行讨论。

1 2 3 4 5 6  下一页

Tags:使用 ADO NET

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接