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

Teradata 响应行大小溢出(9804)错误,teradata,Teradata,我正在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,

我正在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(oreplace(PROC_NAME,' ','') AS VARCHAR(1000)) AS PROC_NAME,

但为什么要删除所有空格?如果有尾随空格,您可以简单地
修剪它们。

生成的
oReplace
数据类型是
VarChar(8000)
您必须强制转换函数的结果,而不是参数:

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

但为什么要删除所有空格?如果有尾随空格,您可以简单地
TRIM
它们。

proc\u name是一个整数列,因此oreplace会给出一个错误。这就是我首先将其强制转换的原因。我需要删除所有数据中的所有空格columns@anurag:整数中没有空格,除非您将其转换为字符(如果您不需要空格,这将是愚蠢的)。我在两个视图之间进行减号检查,并在运行时通过VBA创建减号查询,正如我在问题中所述。因此,这是痛点,其中,我无法在运行时识别列的数据类型,因此只能在特定列上放置或替换函数。@anurag:您的问题中没有指定减号/VBA。但是如果您必须比较两个视图,它们的输出应该是可比较的。@anurag:您可以在OREPLACE上添加另一个强制转换:
CAST(OREPLACE(强制转换(阶段ID为VARCHAR(1000)),“,”,)为VARCHAR(1000))
是否确实要
abc def
等于
ab cd ef
?proc\u name是一个整数列,所以oreplace给出了一个错误,这就是为什么我先铸造它。我需要删除所有数据中的所有空格columns@anurag:整数中没有空格,除非您将其转换为字符(如果您不需要空格,这将是愚蠢的)。我在两个视图之间进行减号检查,并在运行时通过VBA创建减号查询,正如我在问题中所述。因此,这是痛点,其中,我无法在运行时识别列的数据类型,因此只能在特定列上放置或替换函数。@anurag:您的问题中没有指定减号/VBA。但是如果您必须比较两个视图,它们的输出应该是可比较的。@anurag:您可以在OREPLACE上添加另一个CAST:
CAST(OREPLACE(CAST(阶段ID为VARCHAR(1000)),“,”,)作为VARCHAR(1000))
您确定要
abc def
等于
ab cd ef