2012-07-24 13 views
12

Mam starą tabelę, która ma kolumnę o nazwie "RANK" i ta nazwa jest słowem kluczowym w Oracle, Nie wiem, jak powstała ta tabela i nie mogę zmienić nazwy tej kolumny, ponieważ jest używana przez inne aplikacje. Teraz muszę wstawić dane w tej tabeli:Jak obsługiwać kolumnę tabeli z zastrzeżonym słowem kluczowym sql?

insert into mytbl (RANK) 
select RANK from other_table 

podczas wykonywania tej kwerendy mam następujący błąd:

ORA-00907: brak prawy nawias

uprzejmie, jak mogę Rozwiąż ten problem?

Dzięki.

+2

@Madhivanan - RANK został wprowadzony do słownika Oracle stosunkowo niedawno. Nie można zmienić modeli danych starszych systemów. – APC

Odpowiedz

17

Oracle używa podwójnych cudzysłowów ", aby uciec od słów zarezerwowanych.

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

Jeszcze jedna uwaga, Oracle również wymaga poprawnego przypadku.

5

Po pierwsze, nie używaj zastrzeżonych słów kluczowych jako nazwy kolumny i nazwy tabeli.

Firma Oracle używa podwójnych ofert " do analizowania zastrzeżonych słów kluczowych, aby można było przeanalizować słowa kluczowe , umieszczając je w cudzysłowach pod numerami "".

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

W moim przypadku istnieje, w moim zapytaniu.

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

Powinno być:

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