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: несогласованные типы данных: ожидалось - получилось LONG

Если я опущу ГДЕ НЕ СУЩЕСТВУЕТ следующим образом:

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 ряда.

Что происходит?

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
2
0
3 051
2

Ответы 2

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

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