如何在Teradata中将字符串转换为二进制?

时间:2009-03-27 15:56:42

标签: teradata

我在Teradata Database手册-SQL Reference -Functions和Operators中找不到任何将字符串转换为二进制的函数。 将字符串转换为字节也不起作用。

SELECT C1,C2 FROM table WHERE C1< (演员((''QREPI。\ k'||'00'XC || '00'XC || '00'XC ||'00'XC || '00' XC || '00'XC ||' 00'XC || '00'XC ||' 00'XC || '00'XC ||' 00'XC || '00'XC ||' 00'XC | |” ..')as byte(24))));  ***失败3532 BYTE数据与其他类型之间的转换是非法的。                 声明#1,信息= 0

有人知道Teradata是否提供转换方式?

任何评论都非常感谢。

2 个答案:

答案 0 :(得分:2)

如果你只需要一个文字,你可以得到一个二进制等价的字符串:

SELECT C1, C2 FROM table
WHERE C1 < '51524550492e5c6b000000000000000000000000'xb

否则,对于以十六进制存储在表中的数据,可以通过编写新的UDF在Teradata中完成。或者你可以将它导出到一个文件,用程序转换它,然后加载它。

答案 1 :(得分:0)

根据their blog你应该能够使用隐式转换(但不明确)。我认为这意味着:

SELECT C1, C2 
  FROM table 
  WHERE C1 < ('QREPI.\k'||'00'XC||'00'XC||'00'XC||'00'XC||'00'XC||
     '00'XC||'00'XC||'00'XC||'00'XC||'00'XC||'00'XC||'00'XC||'00'XC||' ..');

你试过吗?