Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Razão pela qual o Oracle diferencia maiúsculas de minúsculas?


Por padrão, os identificadores do Oracle (nomes de tabelas, nomes de colunas etc.) não diferenciam maiúsculas de minúsculas . Você pode torná-los sensíveis a maiúsculas e minúsculas usando aspas ao redor deles (por exemplo:SELECT * FROM "My_Table" WHERE "my_field" = 1 ). Palavras-chave SQL (SELECT , WHERE , JOIN , etc.) sempre diferenciam maiúsculas de minúsculas.

Por outro lado, as comparações de strings diferenciam maiúsculas de minúsculas (por exemplo:WHERE field='STRING' só corresponderá a colunas onde for 'STRING' ) por padrão. Você pode torná-los insensíveis a maiúsculas definindo NLS_COMP e NLS_SORT para os valores apropriados (por exemplo:LINGUISTIC e BINARY_CI , respectivamente).

Nota:Ao consultar visualizações de dicionário de dados (por exemplo:dba_tables ) os nomes estarão em maiúsculas se você os criou sem aspas, e as regras de comparação de strings explicadas no segundo parágrafo serão aplicadas aqui.

Alguns bancos de dados (Oracle, IBM DB2, PostgreSQL, etc.) realizarão comparações de strings que diferenciam maiúsculas de minúsculas por padrão, outros não diferenciam maiúsculas de minúsculas (SQL Server, MySQL, SQLite). Isso não é padrão de forma alguma, portanto, esteja ciente de quais são suas configurações de banco de dados.