RANK
Oracleのキーワードであるという名前の列を持つテーブルがあります。
次に、このテーブルにデータを挿入する必要があります。
insert into mytbl (RANK)
select RANK from other_table
このクエリを実行すると、次のエラーが発生しました。
ORA-00907:右括弧がありません
キーワードをどのようにエスケープしますか?
Oracleは、二重引用符を使用し"
て予約語をエスケープします。
insert into mytbl ("RANK")
select "RANK"
from other_table
もう1つの注意点として、Oracleには正しいケースも必要です。
まず、列名やテーブル名として予約キーワードを使用しないでください。
Oracleは二重引用符を使用し"
て予約キーワードを解析するため、二重引用符で囲んでキーワードを解析できます""
。
insert into mytbl ("RANK")
select "RANK"
from other_table
私の場合、クエリに、があります。
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';
前に述べましたが、強調するために、すべての用途でケースと正確に一致する必要があります。列を抽出して注文する必要があるときに、「グループ」が機能しませんでした。次のような両方の場合で「グループ」である必要がありましたGROUP
select "GROUP" from PICKLIST
order by "GROUP"