[TL;DR] A coisa mais simples a fazer é nunca usar aspas duplas em nomes de objetos e apenas deixar o oracle gerenciar a distinção entre maiúsculas e minúsculas da maneira padrão.
Os bancos de dados Oracle são, por padrão, sensíveis a maiúsculas e minúsculas; no entanto, eles também, por padrão, converterão tudo em maiúsculas para que a distinção entre maiúsculas e minúsculas seja abstraída de você, o usuário.
CREATE TABLE tEsT ( column_name NUMBER );
Então:
SELECT COUNT(*) FROM test;
SELECT COUNT(*) FROM Test;
SELECT COUNT(*) FROM TEST;
SELECT COUNT(*) FROM tEsT;
Todos darão a mesma saída e:
SELECT * FROM USER_TABLES;
Saídas:
TABLE_NAME
----------
TEST
(Observe que o nome da tabela está em maiúsculas).
Se você usar aspas duplas, o oracle respeitará seu uso de maiúsculas e minúsculas no nome da tabela:
CREATE TABLE "tEsT" ( column_name NUMBER );
e:
SELECT * FROM USER_TABLES;
Saídas:
TABLE_NAME
----------
TEST
tEsT
(Nota:agora existem duas tabelas chamadas
TEST
e tEsT
e a oracle respeitou a distinção entre maiúsculas e minúsculas do segundo - aquele criado com aspas). (Observe também:
SELECT * FROM tEsT
irá selecionar da primeira tabela, que foi convertida para maiúscula, mas SELECT * FROM "tEsT"
é necessário selecionar a partir do segundo, mesmo que as consultas sejam idênticas, exceto as aspas).