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

Tipo de datos de Oracle:¿debería usar VARCHAR2 o CHAR?

Me preocupa que se coloquen espacios adicionales en los campos VARCHAR2 y problemas de comparación. Sé que hay formas de compararlos recortándolos o convirtiéndolos, pero me temo que hará que mi código se vuelva desordenado y con errores.

En realidad es todo lo contrario. El uso de CHAR obligará a que sus cadenas tengan una longitud fija al rellenarlas con espacios si son demasiado cortas. Entonces, al comparar CHAR con cadenas regulares en cualquier aplicación que esté usando los datos, esa aplicación necesitará agregar un recorte cada vez. En otras palabras, VARCHAR2 es la opción que naturalmente conduce a un código más limpio.

En general, debe siempre use VARCHAR2, a menos que tenga una razón muy específica por la que desea una columna CHAR.

Si le preocupan las cadenas que tienen espacios adicionales al principio o al final, hay algunas opciones que le vienen a la mente:

  • Asegúrese de que cualquier proceso que esté haciendo las inserciones las recorte antes de insertarlas.
  • Agregue una restricción de verificación en la columna que asegure que string =trim(string).
  • Agregue un disparador de nivel de fila antes de insertar que hace un recorte en las cadenas a medida que se insertan.
  • Asegúrese de recortar las cadenas siempre que consulte la tabla