首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从Oracle12升级到19c后,“ORA-03146: TTC字段的无效缓冲区长度”

从Oracle12升级到19c后,“ORA-03146: TTC字段的无效缓冲区长度”
EN

Database Administration用户
提问于 2021-01-14 13:42:41
回答 1查看 9.9K关注 0票数 1

我们在更新表记录BLOB列时遇到了问题。我们得到了"ORA-03146: TTC字段的无效缓冲区长度“错误。我们基本上是在保存数据库的PDF附件。问题发生在从Oracle 12.0.1.2升级到19c (19.3.0.0)之后,现在出现了更大规模的错误。我们有一个.Net应用程序,通过ODP.NET (Oracle.DataAccess)连接到Oracle,并使用NHibernate。我们使用DBUA完成了从Oracle 12.1.0.2到Oracle 19.3.0.0的升级,DB服务器在Windows 2012平台上。

该错误发生在执行命令:{OpsSqlPrepare2(): SQL: UPDATE SIRIUS.Attachment SET Request = :p0, LOANREQUEST = :p1, ARCHIVE = :p2, FILENAME = :p3, FILESIZE = :p4, BINARYCONTENT = :p5, ATTACHMENTTABLE = :p6, ATTACHMENTTYPE = :p7, NOTE = :p8, MIMETYPE = :p9, CUSTOMID = :p10, ISEXTERNAL = :p11, ISSEND = :p12, DocumentNameDial = :p13, DOCUMENTENUMTYPE = :p14, AttachmentTypeDial = :p15 WHERE ID = :p16}之后

BINARYCONTENT是一个BLOB列。

错误与我们拥有的两个环境不同:

Oracle 19c/Oracle client 19c - ORA-03146: TTC字段的无效缓冲区长度

Oracle 19c/Oracle客户端12 - ORA-03138:由于违反安全策略而终止连接

EN

回答 1

Database Administration用户

发布于 2021-01-14 14:52:09

JDBC应用程序在ORA-03146中失败:数据库升级到19c后,TTC字段的缓冲区长度无效(Doc 2729562.1)

将12c数据库更新为19.6可能会导致这一问题。在这种情况下,数据库从12.1.0.2升级。ORA-3137 三一六是一个协议异常,这意味着数据库没有为长绑定使用用户缓冲区中的所有数据。此问题在Bug:30955880 - ORA-3137 三一六 / ORA-3137 三一六更新LOB中讨论,该大BIND作为未发布的Bug 31625618 - DML的副本在LOB列上使用LONG BIND失败,当绑定大小>256 K字节时,将出现ORA-3137 三一六错误。

然后:

使用Long Bind的LOB列上的Bug 31625618 - DML在绑定大小>256 k Bytes ( Bind 31625618.8)的情况下与ORA-3137 [3146] [4] / ORA-3137 [3146] [94]失败。

当绑定长度>256 k字节时,在LOB列上执行DML的客户机(JDBC/OCI)间歇性地失败,当绑定长度>256 k字节: ORA-03137:来自客户端拒绝的格式错误的TTC数据包:三一六 ORA-03137:来自客户端拒绝的格式错误的TTC数据包:三一六 ORA-03146: TTC字段的无效缓冲区长度。

我引用这个部分是为了强调这个问题并不是JDBC特有的。

修正了Bug 31625618作为19c版本的一次性补丁存在于19.10以下。

这个错误在数据库版本19.10中得到了修复,该版本将于下周发布。

目前你在19.3。应用必要的修补程序。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/283236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档