我遇到了Teradata的REGEXP_SPLIT_TO_TABLE问题。它正确地分离结果,但它在每个单独的数字之间插入空格。我使用了CHAR2HEXINT,发现空格的十六进制是00.这是我正在使用的语句:
SELECT *
FROM TABLE(
REGEXP_SPLIT_TO_TABLE('2625 1410', '2625 1410', '[ \t\r\n\v\f]' , 'i')
RETURNS (outkey VARCHAR(250), token_ndx INTEGER, token VARCHAR(220) )
) AS t1;
它返回2 6 2 5行,1 4 1 0行。我希望结果是2625行,1410行。有什么我做错了添加空格吗?有没有办法摆脱空间?提前谢谢。
答案 0 :(得分:0)
我遇到了同样的问题,发现REGEXP_SPLIT_TO_TABLE返回UNICODE字符串:-) 但是,由于您没有为RETURN列指定字符集,因此解析器假定为LATIN,这会产生二进制零。
只需添加CHARACTER SET UNICODE:
SELECT *
FROM TABLE(
REGEXP_SPLIT_TO_TABLE('2625 1410', '2625 1410', '[ \t\r\n\v\f]' , 'i')
RETURNS (outkey VARCHAR(250) CHARACTER SET UNICODE
,token_ndx INTEGER
,token VARCHAR(220) CHARACTER SET UNICODE )
) AS t1;