2012-07-24 5 views
12

"RANK"という名前の列があり、この名前がOracleのキーワードである この表の作成方法はわかりません。この列は他のアプリケーションで使用されているため名前を変更できません。 は、今私は、この表にデータを挿入する必要があります。予約されたSQLキーワードで指定されたテーブル列を処理する方法は?

ORA-00907::私は次のエラーだこのクエリの実行時に

insert into mytbl (RANK) 
select RANK from other_table 

親切に欠けている右括弧を、どのように私ができますこの問題を解決します?

ありがとうございました。

+2

@Madhivanan - RANKは、比較的最近のOracle辞書に導入しました。レガシーシステムのデータモデルを変更することは不可能です。 – APC

答えて

17

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

​​

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

5

まず、列名と表名として予約されたキーワードを使用しないものとします。

Oracleは、ダブル""を引用し、あなたがダブルスに置くことで、キーワード を解析することができるように予約されたキーワードを解析する"を引用使用しています。

​​
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'; 
関連する問題