Подтвердить что ты не робот

Как обрабатывать столбец таблицы, названный с зарезервированным ключевым словом Sql?

У меня есть старая таблица с столбцом "RANK", и это имя является ключевым словом в Oracle, Я не знаю, как эта таблица создана, и я не могу переименовать этот столбец, потому что он используется другими приложениями. Теперь мне нужно вставить данные в эту таблицу:

insert into mytbl (RANK)
select RANK from other_table

при выполнении этого запроса я получил следующую ошибку:

ORA-00907: отсутствующие правые круглые скобки

Как я могу решить эту проблему?

Спасибо.

4b9b3361

Ответ 1

Oracle использует двойные кавычки " для выполнения зарезервированных слов.

insert into mytbl ("RANK")
select "RANK" 
from other_table

Еще одно замечание, Oracle требует правильного случая.

Ответ 2

Прежде всего, вы не должны использовать зарезервированные ключевые слова в качестве имени столбца и имени таблицы.

Oracle использует двойные кавычки " для синтаксического анализа зарезервированных ключевых слов, чтобы вы могли анализировать ключевые слова помещая его в двойные кавычки "".

insert into mytbl ("RANK")
select "RANK" 
from other_table

Ответ 3

В моем случае в моем запросе есть.

UPDATE SCHEMA.TABLE SET PART_NO = '1S7F530400', WHERE PART_NO = '1S7?F5304?00';

Это должно быть:

UPDATE SCHEMA.TABLE SET PART_NO = '1S7F530400' WHERE PART_NO = '1S7?F5304?00';