0

I'm having the following weird issue with Oracle SQL. I have a table called schema_version, but I can't run simple selects over it:

> SELECT * FROM schema_version;
ORA-00942: table or view does not exist
00942. 00000 -  "table or view does not exist"
*Cause:    
*Action:
Error at Line: 1 Column: 15

Now if I attempt to run the very same query but this time surrounding the table name with double quotes everything seems to run fine:

> SELECT * FROM "schema_version";
< results are shown >

From what I've read @ https://stackoverflow.com/a/7425931/130758 I should be okay not using double quotes. What may I be missing? Thanks

Community
  • 1
  • 1
devoured elysium
  • 101,373
  • 131
  • 340
  • 557

1 Answers1

5

If the table was created as

CREATE TABLE "schema_version" (...)

its name is stored in the catalog in the exact (lower) case. When you reference the name unquoted:

SELECT * FROM schema_version;

the name is converted to the upper case by default, so the table cannot be found. When you reference the name quoted:

SELECT * FROM "schema_version";

the table name is used as is (in lower case) and matches that in the catalog.

mustaccio
  • 18,234
  • 16
  • 48
  • 57