Как перенести Oracle View на Teradata

Я работаю над проектом миграции Oracle на Teradata.

Таблицы были перенесены с помощью заданий Datastage.

Как перенести Oracle Views в Teradata?

Прямое копирование скрипта не работает из-за различий в операторах SQL обеих баз данных.

Пожалуйста помоги?


person user1379055    schedule 15.05.2012    source источник
comment
Какие части представления в представлении Oracle вызывают проблемы с идентификацией эквивалента Teradata? Можете ли вы поделиться какой-либо частью определения представления? Многие встроенные в Oracle функции, не соответствующие стандарту ANSI, потребуют UDF в Teradata, некоторые из которых можно загрузить с downloads.teradata.com/download/extensibility/   -  person Rob Paller    schedule 15.05.2012
comment
DECODE (t.satisfaction, NULL, 'Not Evaluated', t.satisfaction) удовлетворение, ................... ошибка в том, что удовлетворение не является типом данных :(   -  person user1379055    schedule 16.05.2012


Ответы (1)


Функция DECODE() Oracle доступна как часть библиотеки Oracle UDF Library на Teradata Developer Exchange Загрузки. В противном случае вы используете функцию DECODE в своем примере так же, как ведет себя функция ANSI COALESCE():

COALESCE(t.satisfaction, 'Not Evaluated')

Следует отметить, что типы данных функции COALESCE() должны быть неявно совместимы, иначе вы получите ошибку. Следовательно, t.satisfaction должен быть не ниже CHAR(13) или VARCHAR(13), чтобы COALESCE() можно было оценить. Если это не так, вы можете явно указать операнд(ы).

COALESCE(CAST(t.satisfaction AS VARCHAR(13)), 'Not Evaluated')

Если ваше использование DECODE() включает в себя больше вычислений, чем в вашем примере, я бы предложил реализовать UDF или заменить его более стандартным оцениваемым оператором CASE. При этом в Teradata 14 (или 14.1) вы обнаружите, что многие функции Oracle, отсутствующие в Teradata, будут доступны в качестве стандартных функций, чтобы облегчить переход с Oracle на Teradata.

person Rob Paller    schedule 16.05.2012