Teradata行大小错误

Teradata行大小错误,teradata,Teradata,在bteq中查询特定表的Teradata时,会出现以下错误。 如何使用JDBC或ODBC在BTEQ或任何其他TD SQL客户机中查询此表 *** Failure 9804 Response Row size or Constant Row size overflow. Statement# 1, Info =0 *** Total elapsed time was 1 second. 以下几点应该行得通。在.logon之前,即在与TD建立会话之前执行此操作

在bteq中查询特定表的Teradata时,会出现以下错误。 如何使用JDBC或ODBC在BTEQ或任何其他TD SQL客户机中查询此表

 *** Failure 9804 Response Row size or Constant Row size overflow.
                Statement# 1, Info =0 
 *** Total elapsed time was 1 second.

以下几点应该行得通。在
.logon
之前,即在与TD建立会话之前执行此操作

.set session charset 'ascii';

对于ODBC和JDBC客户机,应使用名为
CHARSET
的连接参数来解决此问题。

我的Teradata Studio已经使用CHARSET,但我仍然遇到此错误,因此我采取了额外的步骤来研究列长度是否是此问题的根本原因

在减少列大小(例如,将较大的列大小强制转换为Varchar(100))之后,此错误将消失

补救措施: 更改SQL和/或减少数据字段大小和/或返回的字段数,然后重新提交
要求将投影列表和order by子句限制为每个约64k字节的数据。

您能解释一下是什么使此方法起作用吗?我可以看出这有助于OP,但我想知道更改字符集有何帮助。@PriyankGupta会话字符集是用于将数据从数据库服务器传输到客户端应用程序的编码。因为UTF8是可变长度编码。。我假定编码的行数据超过了最大行大小64Kb。如果编码是ascii,我们不会遇到这个问题,但我们可能会丢失非ascii数据。。