2017-10-19 3 views
0

データをマスター表に日々更新しています。つまり、「TODAY」NUMBERという新しい列をマスター表に追加してデータを正常に書き込んでいますが、TODAY列の名前をSYSDATE列名をsysdateに変更

ALTER TABLE DATA_HIST 
RENAME COLUMN TODAY TO SYSDATE; 

私は

もTO_CHARで以下しようとしたが、事前に失敗

ALTER TABLE DATA_HIST 
RENAME COLUMN TODAY TO TO_CHAR(SYSDATE); 

おかげで上記のスクリプトの無効な識別子のエラーを取得しています

ALTER TABLE DATA_HIST 
RENAME COLUMN TODAY TO "SYSDATE"; 

をしかし、一般的に、あなたは、キーワードやシステム関数名の後に、あなたのテーブルやカラムを付けないようにする必要があり: ナッシュ

+6

私はSYSDATEが予約語であると仮定します。 「SYSDATE」を試してみるか、より良い列名を選択してください。 – jarlh

答えて

4
は、二重引用符で列名をエスケープ

+0

は、そのようなことを避けるために上書きされました。あなたがする必要がないときに将来のクエリーでエラーの可能性を生み出さないでください。 – Magisch

+0

@Magisch時々、私たちはこのようなことに悩まされていますが、潜在的な問題を避けるためには常にベストです。 –

+0

避けるべきもう一つの理由は、その列にアクセスする必要があるたびに、常に二重引用符を使用する必要があります –