sasha wrote:

EXECUTE BLOCK
RETURNS ( VAL BLOB SUB_TYPE TEXT )
AS
  DECLARE TYPE_CODE CHAR;

  DECLARE I INT;
  DECLARE S VARCHAR(10);
  DECLARE T BLOB SUB_TYPE TEXT;
BEGIN
  VAL = CASE TYPE_CODE
          WHEN 'I' THEN I
          WHEN 'S' THEN S
          WHEN 'T' THEN T
        END;

  SUSPEND;
END

Ошибка: Datatypes are not comparable in expression CASE.

Тут две проблемы:

1) Я не сравнивал переменные I, S и T, а сравнивал TYPE_CODE с литералами, поэтому сообщение некорректно. С точки зрения здравого смысла сравнение I, S и T производиться не должно.

Не понял смысла твоей претензии.

2) Со строками оно работает отлично. В свете стремления сделать блоб совместимым со строкой не понятно почему для блоба оно не работает.

Патамучта CASE недоработали.


--
Дмитрий Еманов

Ответить