响应行大小溢出 (9804) 错误

Response row size overflow (9804) error

我正在 teradata 14.0 中执行以下查询

        SELECT oreplace(CAST(RULE_ID AS VARCHAR(1000)),' ','') RULE_ID,
        oreplace(CAST(PHASE_ID AS VARCHAR(1000)),' ','') PHASE_ID,
        oreplace(CAST(TARGET_TABLE_NAME AS VARCHAR(1000)),' ','') TARGET_TABLE_NAME,
        oreplace(CAST(AUDIT_TABLE_NAME AS VARCHAR(1000)),' ','') AUDIT_TABLE_NAME,
        oreplace(CAST(PROC_NAME AS VARCHAR(1000)),' ','') PROC_NAME,
        oreplace(CAST(ACTIVE_START_DT AS VARCHAR(1000)),' ','') ACTIVE_START_DT,
        oreplace(CAST(ACTIVE_END_DT AS VARCHAR(1000)),' ','') ACTIVE_END_DT,
        oreplace(CAST(ACTIVE_IND AS VARCHAR(1000)),' ','')  ACTIVE_IND,
        oreplace(CAST(WRITE_AUDIT_IND AS VARCHAR(1000)),' ','') WRITE_AUDIT_IND,
        oreplace(CAST(SCENARIO_TYPE AS VARCHAR(1000)),' ','') SCENARIO_TYPE,
        oreplace(CAST(RULE_ORDER AS VARCHAR(1000)),' ','') RULE_ORDER

        FROM table

当我执行这个查询时,收到 9804(响应行大小溢出)。

使用的字符集:ASCII

oReplace 的结果数据类型是 VarChar(8000) 您必须 CAST 函数的结果,而不是参数:

 CAST(oreplace(PROC_NAME,' ','') AS VARCHAR(1000)) AS PROC_NAME,

但是为什么要去掉所有个空格呢?如果有尾随空格,您可以简单地 TRIM 它们。