Oracle では、SELECT * FROM site WHERE site_id = 3
のようなクエリは正常に機能します。ただし、SELECT * FROM "site" WHERE site_id = 3
のようにテーブル名の前後に二重引用符を追加すると、「テーブルまたはビューが存在しません」というエラーが発生します。この記事では、この違いの背後にある理由を探ります。
二重引用符と大文字小文字の区別
Oracle では、識別子に二重引用符を追加すると、デフォルトの大文字と小文字を区別しない方法ではなく、識別子が大文字と小文字を区別するものとして扱われます。二重引用符を使用してテーブル (または列) を作成する場合は、大文字と小文字を正しく指定して、常に二重引用符を使用して識別子を引用する必要があります (すべて大文字の識別子を除き、この場合二重引用符は効果がありません)。
識別子の内部処理
内部的には、Oracle は常に大文字と小文字を区別して識別子を照合します。ただし、二重引用符で囲まれていない識別子は照合前に大文字に変換されます。識別子の前後に二重引用符を使用すると、Oracle は大文字への変換をスキップします。
概要
そのため、テーブル名を二重引用符で囲む場合は、常に大文字と小文字の区別に注意してください。二重引用符を使用する識別子は、二重引用符で囲み、大文字と小文字を正しく使用する必要があります。これにより、データベース クエリが期待どおりに実行され、「テーブルまたはビューが存在しない」などのエラーが回避されます。
以上がOracle でテーブル名を引用符で囲むと「テーブルまたはビューが存在しません」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。