Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Obtención del número de registros actualizados en un pl/sql

Estas en el tema de Obtención del número de registros actualizados en un pl/sql en el foro de Oracle en Foros del Web. Hola a todos: Desde ya muchas gracias por leer mi consulta, si me pueden ayudar bienvenido sea. Mi problema es el siguiente: Tengo un procedimiento ...
  #1 (permalink)  
Antiguo 14/05/2009, 12:15
 
Fecha de Ingreso: noviembre-2008
Mensajes: 7
Antigüedad: 15 años, 4 meses
Puntos: 0
Busqueda Obtención del número de registros actualizados en un pl/sql

Hola a todos:
Desde ya muchas gracias por leer mi consulta, si me pueden ayudar bienvenido sea. Mi problema es el siguiente: Tengo un procedimiento de el que se actualiza una tabla en función de otra y usé el siguiente sql:

'UPDATE RSG04.CONSOLIDADO_COBROS_REC_MD_DI A
SET A.MARCA_APERTURA='||''''||VAR_SI||''''||
' WHERE EXISTS (SELECT 1 FROM RSG04.CANCELACIONES_CONTRATO_MD_DI B
WHERE A.COD_ENTIGEN=B.COD_ENTIGEN AND A.IDF_CANCELAC=B.IDF_CANCELAC
AND A.COD_ENTIDAD=B.COD_ENTIDAD AND A.COD_CENTRO=B.COD_CENTRO AND A.NUM_CONTRATO=B.NUM_CONTRATO
AND A.COD_PRODUCTO=B.COD_PRODUCTO AND A.COD_SUBPRODU=B.COD_SUBPRODU AND A.COD_DIVISA=B.COD_DIVISA
AND B.MARCA_APERTURA=''S'')');


y me gustaría obtener la cantidad de registros actualizados y no sé cómo hacerlo sin cambiar la instrucción sql por otra en la que declare cursores y haga un loop para que en cada iteración vaya contando. La versión que tengo de oracle es la 9i así que no puedo usar el merge de versiones posteriores en las que sólo se puede actualizar. En esta versión el merge actualiza si encuentra el registro y si no insertar (no es mi caso).

Al que me pueda dar una mano .... se lo agradezco.

Saludos,
Sheena
  #2 (permalink)  
Antiguo 14/05/2009, 13:23
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 5 meses
Puntos: 85
Respuesta: Obtención del número de registros actualizados en un pl/sql

sql%rowcount te dice la cantidad de registros afectados por la última sentencia SQL.

Código:
SQL> set serveroutput on
SQL> select count(*) from t1;

  COUNT(*)
----------
	 3

SQL> begin
  2  update t1 set id = 10;
  3  dbms_output.put_line(sql%rowcount);
  4  end;
  5  /
3

PL/SQL procedure successfully completed.
Saludos
  #3 (permalink)  
Antiguo 14/05/2009, 15:08
 
Fecha de Ingreso: noviembre-2008
Mensajes: 7
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Obtención del número de registros actualizados en un pl/sql

MUCHÍSIMAS GRACIAS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Salió perfecto !


Saludos,
Sheena
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:45.