| |||
Importar datos con sqlldr Hola, necesito importar datos desde un archivo de excel utilizando el sqlldr pero al momento de importar los datos necesito que automaticamente se este ingresando un codigo o id en cada registro automaticamente como lo puedo hacer? |
| |||
Respuesta: Importar datos con sqlldr Que Tal, Una opción sería el crear un trigger en esa tabla que te inserte el id cada vez que se inserte un registro create or replace TRIGGER NOMBRE_TRIGGER BEFORE INSERT ON NOMBRE_TABLA REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW DECLARE vvMaxim NUMBER(10); BEGIN SELECT COUNT(*) + 1 INTO vvMaxim FROM nombre_tabla :new.id_campo := vvMaxim; END; / Saludos. |
| ||||
Respuesta: Importar datos con sqlldr solo acotar un detalle de tu trigger, considerando que id_campo sea llave primaria (como deberia de serlo para un identificador) si sacas el SELECT COUNT(*) + 1 vas a tener problemas cuando empieces a borrar informacion de la tabla, lo mejor es sacar el max SELECT max(id_campo) + 1 aunque en mi opinion lo mejor es crearte una secuencia para identificadores
__________________ |
| |||
Respuesta: Importar datos con sqlldr Buen dia Gracias por responder a mi pregunta, solo que se me olvido mencionar que el id, no es un correlativo, sino que es un id fijo, por ejemplo: hay una tabla maestra de empleados, cada empleado por logica tiene su propio ID, entonces en una tabla de historial necesito importar desde un archivo de texto el trabajo que cada empleado realiza, el problema es que este registro lo hace un software pero no registra el ID del empleado sino solamente el trabajo o la informacion que cada empleado ha hecho, entonces cada vez que se importen estos datos necesito ir metiendo el ID de cada empleado... si tuvieran alguna idea les agradezco de antemano.... por cierto lo del trigger me parece muy bueno... ya habia visto un ejemplo similar pero con un ID correlativo... no se si se puede hacer como yo lo necisito... |
| ||||
Respuesta: Importar datos con sqlldr pues segun entendi tu trigguer tendria que ir a buscar el id para ese empleado no? pero si tu informacion no trae ese ID como los buscarias? por nombre? lo mejor seria que tu informacion tuviera algun campo para poder indentificar al empleado
__________________ |
| |||
Respuesta: Importar datos con sqlldr Gracias por tu ayuda... he estado leyendo y con tu aporte me he orientado bastante... con un trigger me ayudaria bastante solamente tengo que controlar otras cosas que tambien me estan dando problemas... uno de ellos es que al momento de importar los datos que se encuentran dentro del fichero de texto hacia la tabla de la BD me dice que el dato que estoy extraendo es de tipo caracter y debe de ser numerico porque asi esta declarado en la tabla de la BD... Tambien tengo problemas con el campo fecha..., la fecha que se extrae viene con un formato de fecha, hora, minuto y segundo... pero no se como se debe hacer para que se importe con ese mismo formato hacia la tabla de la BD, en el campo de fecha de la tabla de la BD lo he declarado como DATE y tambien he probado como TIMESTAP pero siempre me da error por que el dato no es valido, si pudieras darme una idea de como solucionar estos dos problemas, gracias... |
| |||
Respuesta: Importar datos con sqlldr Que Tal, Con el Primer campo, no se puede hacer mucho, ya que si es un caracter o deberías de cambiar el tipo de dato de la tabla o si es un dato númerico, pero en formato caracter, (algo como esto '10.25' ), solo bastaría con aplicar un to_number. Por otra parte, para el problema que tienes con la fecha, solo bastaría con un tipo de dato DATE por parte de tu tabla, solo que al insertar la fecha necesitas convertirla con el formato en el que viene. Si tu fecha es '14/08/2008 04:50:25' entonces solo bastaría hacer la conversión con el formato adecuado TO_DATE('14/08/2008 04:50:25','DD/MM/YYYY HH:MM:SS') de esta forma tu fecha se guardaría exactamente igual en la base de datos. Espero te sea de utilidad. |