UPDATE MASIVO
HOLA BUENOS DIAS, SOY PRINCIPIANTE EN ORACLE, POR FAVOR NECESITARIA UNA PEQUEÑA AYUDA, PARA MUCHO DEBE SER ALGO COMUN, PERO ME TRABE CON ESTA ACTUALIZACION.
TRABAJAMOS EN ORACLE 10g .
TENGO 2 TABLAS CON LA SIG. ESTRUCTURA.
CL_SUCURSAL AUXILIAR
------------- --------
CLIENTE_COD CLIENTE_COD
CL_SUC CL_SUC
ZONA ZONA
- NECESITO ACTUALIZAR LA ZONA EN LA TABLA CL_SUCURSAL DE LA ZONA DE LA TABLA AUXILIAR, LO QUE TENGO PARA EMPAREJAR SON LOS OTROS 2 CAMPOS, CLIENTE_COD Y CL_SUC. EN LA TABLA CL_SUCURSAL PUEDO TENER EL MISMO CLIENTE_COD MAS DE UNA VEZ PERO CON DISTINTA CL_SUC.
ESPERO SU FAVORABLE AYUDA, DESDE YA MUCHAS GRACIAS.
UN ABRAZO
TRABAJAMOS EN ORACLE 10g .
TENGO 2 TABLAS CON LA SIG. ESTRUCTURA.
CL_SUCURSAL AUXILIAR
------------- --------
CLIENTE_COD CLIENTE_COD
CL_SUC CL_SUC
ZONA ZONA
- NECESITO ACTUALIZAR LA ZONA EN LA TABLA CL_SUCURSAL DE LA ZONA DE LA TABLA AUXILIAR, LO QUE TENGO PARA EMPAREJAR SON LOS OTROS 2 CAMPOS, CLIENTE_COD Y CL_SUC. EN LA TABLA CL_SUCURSAL PUEDO TENER EL MISMO CLIENTE_COD MAS DE UNA VEZ PERO CON DISTINTA CL_SUC.
ESPERO SU FAVORABLE AYUDA, DESDE YA MUCHAS GRACIAS.
UN ABRAZO
Hola Claudio,
tu sql sería algo así:
update CL_SUCURSAL CLS
set CLS.ZONA = (select AUX.ZONA FROM AUXILIAR AUX
where AUX.CLIENTE_COD = CLS.CLIENTE_COD
and AUX.CL_SUC = CLS.CL_SUC);
COMMIT;
tu sql sería algo así:
update CL_SUCURSAL CLS
set CLS.ZONA = (select AUX.ZONA FROM AUXILIAR AUX
where AUX.CLIENTE_COD = CLS.CLIENTE_COD
and AUX.CL_SUC = CLS.CL_SUC);
COMMIT;
update /*+bypass_ujvc*/(select CLS.ZONA as old_zona, AUX.ZONA as new_zona from CL_SUCURSAL CLS inner join AUXILIAR AUX on AUX.CLIENTE_COD = CLS.CLIENTE_COD and AUX.CL_SUC = CLS.CL_SUC) set old_zona = new_zona;
Espero te sirva, o te de una idea :)
Espero te sirva, o te de una idea :)