Oracle: ORA-00932 при преобразовании выражения column_expression из выражений user_ind_expressions с использованием to_lob

Попробуйте запустить эти два простых оператора в Oracle 10.2:

CREATE TABLE mytest
   (table_name varchar2(30), 
   index_name varchar2(30), 
   column_expression clob,
   column_position number);

INSERT INTO mytest 
  (table_name,
   index_name,
   column_expression, 
   column_position) 
SELECT table_name, index_name,
       to_lob(column_expression), column_position 
FROM user_ind_expressions EXPRA 
WHERE NOT EXISTS 
   (SELECT 1 FROM user_constraints 
    WHERE constraint_name = EXPRA.index_name 
    AND table_name = EXPRA.table_name);

Это приводит к этой ошибке:

ОШИБКА в строке 1: ORA-00932: несовместимые типы данных: ожидается - получено ДОЛГО

Если я опущу ГДЕ НЕ СУЩЕСТВУЕТ, как это:

INSERT INTO mytest 
   (table_name,index_name,column_expression, column_position) 
SELECT table_name,index_name,
       to_lob(column_expression), column_position 
FROM user_ind_expressions EXPRA;

Оно работает:

23 ряда создано.

Что здесь происходит?

2 ответа

Если Мишель Кадо говорит, что это ошибка, то это почти наверняка ошибка.

Да, похоже на это.

http://www.orafaq.com/forum/m/352199/130782/

Другие вопросы по тегам