检索Oracle CLOB数据类型时为什么会出现TTC错误

问题描述

我使用.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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...