Desabilitar y habilitar constraints
Hola a todos:
Tengo un procedimiento que en su ejecuci贸n debe sacar una copia de una tabla, luego borrarla para aplicar un algoritmo especial de ordenamiento y finalmente volver a copiarl los registros en la tabla original. Este procedimiento se ejecuta cada cierto periodo de tiempo. Necesito deshabilitar todas las constraints de las tablas que referencian a esta tabla para as铆 eliminar los datos e insertar los nuevos y despues de esto, volver a habilitar las constraints.
Conozco la instrucci贸n, pero no se como puedo crear un store procedure que me desabilite todos los constrains que necesito (son 6 en total) ya que la instrucci贸n ALTER TABLE "NOMTABLA" DISABLE CONSTRAINT "NOMCONSTRAINT" dice ser no valida en la sintaxix de un store procedure.
Tengo un procedimiento que en su ejecuci贸n debe sacar una copia de una tabla, luego borrarla para aplicar un algoritmo especial de ordenamiento y finalmente volver a copiarl los registros en la tabla original. Este procedimiento se ejecuta cada cierto periodo de tiempo. Necesito deshabilitar todas las constraints de las tablas que referencian a esta tabla para as铆 eliminar los datos e insertar los nuevos y despues de esto, volver a habilitar las constraints.
Conozco la instrucci贸n, pero no se como puedo crear un store procedure que me desabilite todos los constrains que necesito (son 6 en total) ya que la instrucci贸n ALTER TABLE "NOMTABLA" DISABLE CONSTRAINT "NOMCONSTRAINT" dice ser no valida en la sintaxix de un store procedure.
declare
cursor c1(v_table_name varchar2) is
SELECT \'DISABLE CONSTRAINT \'||constraint_name
sql_sentence
FROM ALL_CONSTRAINTS
WHERE TABLE_NAME=v_table_name;
sql varchar2(100);
begin
open c1(nombre_tabla);
fetch c1 into sql;
close c1;
execute immediate sql;
commit;
end;
Espero que te sirva.
agur.
cursor c1(v_table_name varchar2) is
SELECT \'DISABLE CONSTRAINT \'||constraint_name
sql_sentence
FROM ALL_CONSTRAINTS
WHERE TABLE_NAME=v_table_name;
sql varchar2(100);
begin
open c1(nombre_tabla);
fetch c1 into sql;
close c1;
execute immediate sql;
commit;
end;
Espero que te sirva.
agur.
