Ver Mensaje Individual
  #4 (permalink)  
Antiguo 18/06/2008, 04:06
ccalvofer
 
Fecha de Ingreso: mayo-2008
Mensajes: 10
Antigüedad: 16 años
Puntos: 0
Respuesta: Cursor Pl/sql

Ahora mismo, mi cursor esta así:
DECLARE
CURSOR ejemplo IS
SELECT a
FROM txs
WHERE b = '&1';
ejemplo_rec ejemplo%ROWTYPE;
BEGIN
FOR ejemplo_rec IN ejemplo
LOOP
DELETE TXS WHERE a = ejemplo_rec.a;
END LOOP;
END;

Y realmente me hace lo que quiero, pero prefiero que en vez de realizar un delete se haga un truncate a la partición correspondiente. el nombre de la partición es txs_PXX, donde XX es el campo a. Es decir, la tabla esta particionada por el campo a y tiene valores 1, 20, 118... y las particiones son txs_P1, txs_P20, txs_P118...

Había pensado en hacer algo del estilo: ALTER TABLE txs TRUNCATE PARTITION txs_P||ejemplo_rec.a;

Pero esto anterior no me funciona, me devuelve error PLS-00103.

¿Alguna idea de como podría hacerlo para que me truncara por partición?

Muchas gracias.