用企业库调用Oracle存储过程和包
问题描述:
我正在创建一个ASP.NET MVC应用程序,并且正在使用企业库连接到我的Oracle数据库。用企业库调用Oracle存储过程和包
我以前总是使用SQL Server,这是我用来调用它的方式。
Database db = readConfig.ReadWebConfig();
SP_NAME = "Get_Data";
using (DbCommand dbCommand = db.GetStoredProcCommand(SP_NAME))
{
//Pass parameters
dbCommand.Parameters.Clear();
db.AddInParameter(dbCommand, "CommParent_ID", DbType.Int32, comment.CommParent_id);
db.AddInParameter(dbCommand, "Type_ID", DbType.Int32, comment.Type_id);
IRowMapper<CommentEntity> resmapper = MapBuilder<CommentEntity>.MapAllProperties()
.Map(x => x.UserEmail).ToColumn("Email")
.Map(x => x.Nick).ToColumn("FullName")
.Map(x => x.User_id).ToColumn("User_ID")
.Map(x => x.Comment_id).ToColumn("Comment_ID")
.Build();
List<CommentEntity> result = db.ExecuteSprocAccessor<CommentEntity>(SP_NAME, resmapper, dbCommand.Parameters).ToList<CommentEntity>();
}
我使用Oracle的问题是存储过程嵌入在包和包体中。
我的问题是,我如何在我的通话中设置包名。
感谢
答
更改您的存储过程的名称:
SP_NAME = "package_name.Get_Data";
添加SYS_REFCURSOR输出参数使用:
OracleParameter oraP = new OracleParameter();
oraP.OracleDbType = OracleDbType.RefCursor;
oraP.Direction = System.Data.ParameterDirection.Output;
cmd.Parameters.Add(oraP);
+0
谢谢,我有一个新的错误,我在另一篇文章中发布。 – Diego
你尝试:SP_NAME = “package_name.Get_Data”; ? –
谢谢...还有一个问题..我如何定义游标类型的AddOutParameter ?. – Diego
请参阅下面的答案。 –