2017-10-12 13 views
2

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>(); 
} 

오라클을 사용하여 문제는 저장 프로 시저가 패키지 및 패키지 본문에 포함되어 있다는 것입니다.

내 질문은 내 전화에서 패키지 이름을 설정하는 방법입니다.

OracleParameter oraP = new OracleParameter(); 
oraP.OracleDbType = OracleDbType.RefCursor; 
oraP.Direction = System.Data.ParameterDirection.Output; 
cmd.Parameters.Add(oraP); 
+1

는 당신이 시도 않았다하십시오 SYS_REFCURSOR 출력 매개 변수는이 사용 추가하려면

SP_NAME = "package_name.Get_Data"; 

:

감사 –

+0

고마워요 ... 질문 하나 더 .. 어떻게 커서 유형에 대한 AddOutParameter를 정의합니까?. – Diego

+0

내 대답보기. –

답변

1

은 당신의 저장 프로 시저의 이름을 변경

SP_NAME = "package_name.Get_Data을"; ?

+0

감사합니다. 나는 다른 게시물에 올리려고한다는 새로운 오류가 있습니다. – Diego