I have a table named "libisatz"
in my database, and there is no table, nor view with name "libiSatz"
(with capital S instead of s) and I don't find any kind of object in my schema having name "libiSatz"
. But, surprisingly selecting from "libiSatz"
results in the same result as if I had written "libisatz"
. If I change any other letter in this name from lower case to upper case (e.g. I write "Libisatz"
, then I get an error. How can this be?.
ADDENDUM
I've checked the ideas of @Jon Heller with the following result:
Both
select * from DBA_OBJECTS where OBJECT_NAME like 'libi_atz';
andselect * from DBA_OBJECTS where lower(OBJECT_NAME) = 'libisatz';
returns one single row (it is the"libisatz"
table)select * from DBA_OBJECTS where OBJECT_NAME = 'libisatz';
returns one row andselect * from DBA_OBJECTS where OBJECT_NAME = 'libiSatz';
returns no row.Both
select * from DBA_SQL_TRANSLATIONS;
andselect * from DBMS_ADVANCED_REWRITE;
results inORA-00942: table or view does not exist
select * from DBA_REWRITE_EQUIVALENCES;
results inno rows selected
select DUMP(OBJECT_NAME) from DBA_OBJECTS where lower(OBJECT_NAME) = 'libisatz';
returnsTyp=1 Len=8: 108,105,98,105,115,97,116,122
So it seems that the puzzle is not yet solved.
ADDENDUM 2.
When I try to create a view named
"libiSatz"
then I getORA-00955: name is already used by an existing object
in spite of the results above.
After I renamed
"libiSatz"
to"oraclepuzzle"
,select count(*) from "libisatz";
and"select count(*) from "oraclepuzzle";
works, butselect count(*) from "libiSatz";
doesn't.select * from dba_objects where object_name in ( 'oraclepuzzle', 'libisatz', 'libiSatz');
returns one row with object_name"oraclepuzzle"
.