Teradata错误:格式或数据包含错误字符

Teradata错误:格式或数据包含错误字符,teradata,Teradata,我从下面的查询中得到错误“格式或数据包含坏字符”。column1的数据类型是VARCHAR(2000)。这是column1的字符串'ROC 2236 00 ROC'示例,我希望得到的结果是'2236.00' SELECT ORDER_NUMBER, CASE WHEN COLUMN1 LIKE 'ROC%' THEN CAST(OREPLACE(TRIM(COALESCE(SUBSTR('COLUMN1',5, 8),0)),' ','.' ) AS DEC(12,2) END

我从下面的查询中得到错误“格式或数据包含坏字符”。column1的数据类型是
VARCHAR(2000)
。这是column1的字符串
'ROC 2236 00 ROC'
示例,我希望得到的结果是
'2236.00'

SELECT ORDER_NUMBER,
      CASE WHEN COLUMN1 LIKE 'ROC%' THEN CAST(OREPLACE(TRIM(COALESCE(SUBSTR('COLUMN1',5, 8),0)),' ','.' ) AS DEC(12,2) END           
FROM TABLE1
WHERE CAST(COLUMN1 AS DEC(12,2)) > 0

在没有实际数据的情况下很难测试这一点,但是乍一看,您正在尝试将单词column1转换为十进制

您的where子句正在进行直接转换,在提供示例数据的情况下,它不希望将“ROC”转换为十进制

试一试


我发现使用功能
TRIM
工作得更好。我认为这个错误是前导/尾随空格造成的

SELECT 
     ORDER_NUMBER 
   , CASE WHEN COLUMN1 LIKE 'ROC%' THEN 
       CAST(OREPLACE(TRIM(COALESCE(SUBSTR(COLUMN1,5, 8),0)),' ','.' ) AS DEC(12,2)) 
     END
FROM TABLE1 
WHERE CAST(OREPLACE(TRIM(COALESCE(SUBSTR(COLUMN1,5, 8),0)),' ','.' ) AS DEC(12,2)) > 0