Oracle: ORA-00932 при преобразовании выражения column_expression из выражений user_ind_expressions с использованием to_lob - PullRequest
2 голосов
/ 06 октября 2008

Попробуйте запустить эти два простых оператора в 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 ]

1 голос
/ 06 октября 2008

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

0 голосов
/ 07 октября 2008
...