16

RANKOracleのキーワードであるという名前の列を持つテーブルがあります。

次に、このテーブルにデータを挿入する必要があります。

insert into mytbl (RANK)
select RANK from other_table

このクエリを実行すると、次のエラーが発生しました。

ORA-00907:右括弧がありません

キーワードをどのようにエスケープしますか?

4

4 に答える 4

24

Oracleは、二重引用符を使用し"て予約語をエスケープします。

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

もう1つの注意点として、Oracleには正しいケースも必要です。

于 2012-07-24T11:35:35.143 に答える
7

まず、列名やテーブル名として予約キーワードを使用しないでください。

Oracleは二重引用符を使用し"て予約キーワードを解析するため、二重引用符で囲んでキーワードを解析できます""

insert into mytbl ("RANK")
select "RANK" 
from other_table
于 2012-07-24T11:40:58.477 に答える
0

私の場合、クエリに、があります。

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';
于 2017-03-27T02:13:32.060 に答える
0

前に述べましたが、強調するために、すべての用途でケースと正確に一致する必要があります。列を抽出して注文する必要があるときに、「グループ」が機能しませんでした。次のような両方の場合で「グループ」である必要がありましたGROUP

select "GROUP" from PICKLIST
order by "GROUP"
于 2022-02-02T16:13:16.637 に答える