问题描述
我使用.net core和oracle数据库。
- .net core v2.2
- Oracle数据库ora10g
- Oracle.EntityFrameworkCore v2.19.6
- Oracle.ManagedDataAccess.Core v2.19.6
加载CLOB数据时发生TTC错误。 代码没有问题。常规varchar2正常工作。 TTC错误的原因是什么?
An unhandled exception occurred while processing the request.
Exception: TTC Error
OracleInternal.TTC.TTCExecuteSql.ReceiveExecuteResponse(ref Accessor[] defineAccessors,Accessor[] bindAccessors,bool bHasReturningParams,ref SQLMetaData sqlMetaData,SqlStatementType statementType,long noOfRowsFetchedLastTime,int noOfRowsToFetch,out int noOfRowsFetched,ref long queryId,int longFetchSize,long initialLOBFetchSize,long[] scnFromExecution,bool bAllInputBinds,int arrayBindCount,ref DataUnmarshaller dataUnmarshaller,ref MarshalBindParameterValueHelper marshalBindParamsHelper,out long[] rowsAffectedByArrayBind,bool bDefineDone,ref bool bMoreThanOneRowAffectedByDmlWithRetClause,ref List<TTCResultSet> implicitRSList,bool bLOBArrayFetchRequired)
我需要单独设置什么吗?
5-1 ODP.NET Entity Framework Core Migration Data Type Default Mapping
我们还完成了Fluent API映射,如上面的Oracle教程所示。
代码
[HttpGet("{id}")]
public ActionResult<ResultViewModel> GetDetail(string id)
{
var result= _service.GetDetail(id);
if(result== null)
return NotFound("error");
return Ok(result);
}
public ResultViewModel GetDetail(string id)
{
var tResult= _dbcontext.T_RESULT
.Where(r => r.ID.Equals(id) && r.STATUS.Equals("U") && r.TYPE.Equals("Q"))
.FirstOrDefault();
var vResult= _mapper.Map<ResultViewModel>(tResult);
return vResult;
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.Entity<T_RESULT>()
.Property(r => r.CONTENTS)
.HasColumnType("CLOB");
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)