Teradata REGEXP_SPLIT_TO_TABLE 在数字之间插入空格
Teradata REGEXP_SPLIT_TO_TABLE Inserting Spaces between Numbers
我在使用 Teradata REGEXP_SPLIT_TO_TABLE 时遇到问题。它正确地分离了结果,但它在每个单独的数字之间插入 spaces。我使用 CHAR2HEXINT 并发现 space 的十六进制是 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;
它 returns 2 6 2 5 一行和 1 4 1 0 一行。我希望结果是连续 2625 和连续 1410。添加 space 是我做错了什么吗?有没有办法摆脱 spaces?提前致谢。
我遇到了同样的问题,发现 REGEXP_SPLIT_TO_TABLE returns UNICODE 字符串 :-)
但是由于您没有为 RETURN 列指定字符集,因此解析器假定为 LATIN,这会导致二进制零。
只需添加字符集 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;
我在使用 Teradata REGEXP_SPLIT_TO_TABLE 时遇到问题。它正确地分离了结果,但它在每个单独的数字之间插入 spaces。我使用 CHAR2HEXINT 并发现 space 的十六进制是 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;
它 returns 2 6 2 5 一行和 1 4 1 0 一行。我希望结果是连续 2625 和连续 1410。添加 space 是我做错了什么吗?有没有办法摆脱 spaces?提前致谢。
我遇到了同样的问题,发现 REGEXP_SPLIT_TO_TABLE returns UNICODE 字符串 :-) 但是由于您没有为 RETURN 列指定字符集,因此解析器假定为 LATIN,这会导致二进制零。
只需添加字符集 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;