カレンダーというテーブルがあります。
その列の1つは「日付」という名前です
日付列を選択したい場合、エラーORA-01747、つまり無効なtable.columnが表示されます。
select date from calendars
'date'はpl/sqlの予約語であるため、これが発生すると思います。問題は、列名を変更することさえできないことです:
alter table calendars rename column date to date_d
結果は次のとおりです。ORA-00904エラー:識別子が無効です。
何をアドバイスしますか?
ありがとう。
やってみました
select calendars.date from calendars; /* or you could alias "calendars" if you don't want to type so much */
それでも問題が解決しない場合は、列を削除してみましたか(そして、テーブル名のプレフィックスで列を参照してみてください:calendars.date
)?
私もこの投稿を見つけました: Oracleで予約語をエスケープするにはどうすればよいですか?
二重引用符を使用すると、Oracleでは大文字と小文字が区別されるようです。
select "date" from calendars;
と同じではありません
select "Date" from calendars;
予約語を二重引用符で囲んでエスケープしてみてください。
select "date" from calendars
日付は予約済みのキーワードであるため、次のように使用することはできません
いくつかのテーブルから日付を選択します
問題には複数の解決策があります
SELECT [日付] FROM tableName
TableNameから 'date'を選択します
TableNameからtableName.dateを選択します