【问题标题】:Teradata Row size ErrorTeradata 行大小错误
【发布时间】:2017-09-20 04:39:54
【问题描述】:

当我在 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.

【问题讨论】:

    标签: teradata


    【解决方案1】:

    我的 Teradata Studio 已经使用了 charset,但我仍然收到此错误,因此我采取了额外的步骤来调查列长度作为此问题的根本原因。

    减少列大小后,例如将大列大小转换为 Varchar(100),此错误将消失。

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

    【讨论】:

      【解决方案2】:

      以下应该有效。在.logon 之前执行此操作,即在与 TD 建立会话之前。

      .set session charset 'ascii';
      

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

      【讨论】:

      • 你能解释一下是什么让这个方法有效吗?我可以看到这对 OP 有所帮助,但我想知道更改字符集有何帮助。
      • @PriyankGupta 会话字符集是用于将数据从数据库服务器传输到客户端应用程序的编码。因为 UTF8 是可变长度编码。我假设编码的行数据超过了 64Kb 的最大行大小。如果编码是 ascii,我们不会遇到这个问题,但我们可能会丢失非 ascii 数据..
      猜你喜欢
      • 2015-11-14
      • 2019-02-13
      • 1970-01-01
      • 2015-09-22
      • 1970-01-01
      • 2016-12-01
      • 2018-05-24
      • 1970-01-01
      • 2016-02-23
      相关资源
      最近更新 更多