Как преобразовать строку в двоичный файл в Teradata? - PullRequest
1 голос
/ 27 марта 2009

Я не нахожу никаких функций для преобразования строки в двоичный файл в Справочнике по базе данных Teradata-Справочник по SQL -Функции и операторы. Преобразование строки в байт тоже не работает.

ВЫБРАТЬ C1, C2 ИЗ таблицы ГДЕ C1 <(cast (('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 | |» .. ') как байт (24)))); *** Ошибка 3532 Преобразование между данными BYTE и другими типами является незаконным. Заявление № 1, Информация = 0 </p>

Кто-нибудь знает, предоставляет ли Teradata способ конвертации?

Любые комментарии высоко ценятся.

Ответы [ 2 ]

2 голосов
/ 31 марта 2009

Если все, что вам нужно, это литерал, вы можете получить двоичный эквивалент вашей строки следующим образом:

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

В противном случае для данных, которые хранятся в ваших таблицах в шестнадцатеричном виде, это можно сделать в Teradata, написав новый UDF. Или вы можете экспортировать его в файл, преобразовать его с помощью программы и загрузить обратно.

0 голосов
/ 27 марта 2009

Согласно их блогу вы должны быть в состоянии сделать это с неявным приведением (но не явным). Я понимаю, что это означает что-то вроде:

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||' ..');

Вы пробовали это?

...