Hola,
SQL*Loader no actualiza filas en la carga, trabaja a nivel de tabla. La unica opcion que se me ocurre, de momento, es generar un fichero .bad con todas las filas descartadas por clave duplicada, y generar una tabla externa que tenga como source el fichero .bad, a partir de ahi, y despues de cada carga del SQL*Loader, utilizar un UPDATE para agregar el consumo_mes a la tabla de destino.
A esto le veo varias ventajas.
1. Puedes reutilizar el fichero de control para definir la tabla externa, que estara basada en el motor del loader.
2. El proceso sera rapido, para cargar la tabla externa Oracle utiliza el mismo loader.
3. El update sera rapido porque estara basado en un indice unico, la clave primaria.
3. El fichero .bad se genera automaticamente en cada carga, por lo tanto el contenido de la tabla externa se actualiza justo despues de la carga.
Lo malo, los registros que iran al fichero .bad, y que no tengan nada que ver con la clave primaria, es decir, que los envie al .bad porque, por ejemplo, no se cumplan con la longitud de algun campo, de todos modos si la tabla externa tiene la misma logica que el fichero de control, entonces tambien seran descartados.
En cuanto a la segunda pregunta, los Linux soportados para 10g segun la documentacion son,
Red Hat Enterprise Linux AS/ES 3.0 (Update 4 or later)
Red Hat Linux 4.0
SUSE Linux Enterprise Server 9.0 with SP 2 or later
Asianux 1.0
Asianux 2.0
A lo que hay que agregarle Oracle Enterprise Linux, que en realidad es Red Hat Enterprise sin el Logo, y United Linux.
La forma de elegir uno, facil, con el que te sientas mas comodo trabajando, con cualquier de ellos obtendras soporte de Oracle en caso que lo necesites. Ademas debes considerar el soporte sobre Linux, se que Red Hat, Suse y Oracle dan buenos contratos de soporte.
Ahora si me permites, esto me llamo la atencion
Cita: ...buscando distribuciones linux (netamente porque necesitamos realizar cargas remotamente a través de shell unix (linux en este caso))
La eleccion del sistema operativo, desde el punto de vista de Oracle, es importante y es la primera vez que leo que se elige uno en funcion de una tarea de carga de datos. Asegurate bien, de que de hecho, no puedas resolver la problematica en algun otro sistema operativo con el que estes mas familiarizado. Esto ultimo es simplemente una opinion, nada mas :)
Saludos.