Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.tools -> Re: Very simple PL/SQL question...

Re: Very simple PL/SQL question...

From: Clemens Hoffmann <cls_at_easy-call.net>
Date: Sun, 27 May 2001 10:32:19 +0200
Message-ID: <_Y2Q6.175$K57.1444@news.easynews.net>

Hi there,

you may use Dynamic SQL to perform this. This will work for all Oracle versions since 7.x. The PL/SQL block below uses Dynamic SQL
to disable all constraints in a user schema. Hope this helps

DECLARE
    CURSOR c_constr
IS

     SELECT constraint_name, table_name FROM user_constraints;
     c_ddl                NUMBER;
     v_rows             NUMBER;
     v_stmt              VARCHAR2(128);
     v_const_name   user_constraints.constraint_name%TYPE;
     v_table_name    user_constraints.table_name%TYPE;
BEGIN
     c_ddl := DBMS_SQL.OPEN_CURSOR;
     v_stmt := 'ALTER TABLE :table DISABLE CONSTRAINT :const';
     DBMS_SQL.PARSE (c_ddl, v_stmt, DBMS_SQL.NATIVE);
     OPEN c_constr;
             LOOP
                  FETCH c_constr INTO v_const_name, v_table_name;
                  EXIT WHEN c_constr%NOTFOUND;
                  DBMS_SQL.BIND_VARIABLE(c_ddl, ':table', v_table_name);
                  DBMS_SQL.BIND_VARIABLE(c_ddl, ':const', v_const_name);
                  v_rows := DBMS_SQL.EXECUTE(c_ddl);
             END LOOP;
     DBMS_SQL.CLOSE_CURSOR(c_ddl);

END; Received on Sun May 27 2001 - 03:32:19 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US