Paso a oracle

Buenas!
Tengo una aplicación con el interfaz visual en access y he migrado las tablas de este a oracle.
Las tengo ya definidas, creadas y cargadas con datos las tablas en el servidor de oracle, pero a la hora de comprobar que sigue haciendo lo mismo la aplicación, es decir, si debe buscar por un campo, por ejemplo, por apellido, he definido ese campo como un CHAR(20), si el apellido a buscar es "PEREZ", no me lo encuentra sino escribo PEREZ+15espacios en blanco, el total de 20 caracteres que he definido el campo o por ejemplo a la hora de mostrar el apellido, no muestra el "PEREZ" solamente, sino que muestra los 20 caracteres del campo, desplazando cualquier otro dato que deba mostrar los 15 caracteres que sobran del campo en blanco, en este caso.
Debe ser por alguna cosilla al definir los campos de las tablas o algo así.
Para que veas un ejemplo de como las he definido:
create table clientes
(Id NUMBER primary key,
NOMBRE CHAR(20),
APELLIDO1 CHAR(20),
APELLIDO2 CHAR(20),
EDAD NUMBER,
FECHA_NACIMIENTO DATE;
COMENTARIOS VARCHAR2(2000)
);
//TABLA CREADA
CREATE SEQUENCE SEC_CLIENTES
START WITH 1
INCREMENT BY 1;
CREATE OR REPLACE TRIGGER trigger_CLIENTES BEFORE INSERT
ON CLIENTES
REFERENCING NEW AS NEW
FOR EACH ROW
BEGIN
SELECT SEC_CLIENTES.nextval INTO :NEW.Id FROM dual;
END;
/
//SECUENCIA Y TRIGGER PARA CAMPO AUTONUMERICO (Id) CREADOS
CREATE INDEX IN_CLIENTES ON CLIENTES(APELLIDO1);
//INDICE AL CAMPO APELLIDO1 CREADO
Por favor si me pudieras echar una mano ya que en esto de oracle soy bastante novato y no se que hacer, si debe ser alguna sentencia al crear la tabla, ¿los campos o el que?
Muchas gracias por todo de ante mano.
Un saludo.

1 Respuesta

Respuesta
1
En Oracle Los campos definidos con CHAR no se suelen utilizar porque tienen en cuenta los blancos a la derecha. Debes definirlo como VARCHAR2(20) y te funcionara bien.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas