sql >> Base de Datos >  >> RDS >> Oracle

¿Por qué Oracle distingue entre mayúsculas y minúsculas?

De forma predeterminada, los identificadores de Oracle (nombres de tablas, nombres de columnas, etc.) son insensibles a mayúsculas y minúsculas. . Puede hacer que distingan entre mayúsculas y minúsculas usando comillas alrededor de ellos (p. ej.:SELECT * FROM "My_Table" WHERE "my_field" = 1 ). Palabras clave de SQL (SELECT , WHERE , JOIN , etc.) siempre distinguen entre mayúsculas y minúsculas.

Por otro lado, las comparaciones de cadenas distinguen entre mayúsculas y minúsculas. (por ejemplo:WHERE field='STRING' solo coincidirá con columnas donde es 'STRING' ) por defecto. Puede hacer que no distingan entre mayúsculas y minúsculas configurando NLS_COMP y NLS_SORT a los valores apropiados (por ejemplo:LINGUISTIC y BINARY_CI , respectivamente).

Nota:Al consultar las vistas del diccionario de datos (p. ej.:dba_tables ) los nombres estarán en mayúsculas si los creó sin comillas, y aquí se aplicarán las reglas de comparación de cadenas que se explican en el segundo párrafo.

Algunas bases de datos (Oracle, IBM DB2, PostgreSQL, etc.) realizarán comparaciones de cadenas que distinguen entre mayúsculas y minúsculas de forma predeterminada, otras no distinguen entre mayúsculas y minúsculas (SQL Server, MySQL, SQLite). Esto no es estándar de ninguna manera, así que tenga en cuenta cuáles son sus configuraciones de db.