我正在创建一个ASP.NET MVC应用程序,我正在使用Enterprise Library连接到我的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的问题是存储过程嵌入在包和包体中。
我的问题是,我如何在通话中设置包名。
由于
答案 0 :(得分:1)
将存储过程名称更改为:
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);