Hi,

I've found the answer.

DECLARE
countval NUMBER;
curid    BINARY_INTEGER;
retval   NUMBER;
BEGIN

for i in (select OWNER,TABLE_NAME from DBA_TABLES WHERE ROWNUM) loop

  curid:= dbms_sql.open_cursor;
  dbms_sql.parse( curid, 'BEGIN SELECT count(*) INTO :cntval FROM '||
     i.owner||'.'||i.table_name||'; END;',      dbms_sql.v7 );
  dbms_sql.bind_variable( curid, 'cntval', countval );
  retval:= dbms_sql.execute( curid );
  dbms_sql.variable_value( curid, 'cntval', countval );
  dbms_sql.close_cursor( curid );
  dbms_output.put_line( 'Count is:= ' || countval );

end loop;

END;
/

Regds,
New Bee
                -----Original Message-----
                From:   CHAN Chor Ling Catherine (CSC) 
                Sent:   Thursday, October 17, 2002 4:12 PM
                To:     '[EMAIL PROTECTED]'
                Subject:        How to get the count of all tables using
dbms_sql

                Hi,

                I need to insert the total number of records all the tables
into the table, MIGRATION_TABLE. I want to use the 
                How do I obtain the count(*) into a variable in
"dbms_sql.parse(cid, 'SELECT COUNT(*) FROM ' ||i.owner||'.'||i.table_name,
dbms_sql.v7); " ?

                TIA

                Declare
                   cid INTEGER; 
                BEGIN 
                  for i in (select OWNER,TABLE_NAME from DBA_TABLES) loop

                    -- Open new cursor and return cursor ID. 
                    cid := dbms_sql.open_cursor; 

                   /* Parse and immediately execute dynamic SQL statement
built by 
                      concatenating table name to DROP TABLE command.
(Unlike DML 
                      statements, DDL statements are executed at parse
time.) */ 
                   dbms_sql.parse(cid, 'SELECT COUNT(*) FROM '
||i.owner||'.'||i.table_name, dbms_sql.v7); 

                /* Close cursor. */ 
                   dbms_sql.close_cursor(cid); 

                  end loop;

                EXCEPTION 
                   /* If an exception is raised, close cursor before
exiting. */ 
                   WHEN OTHERS THEN 
                      dbms_sql.close_cursor(cid); 
                END;

                Regds,
                New Bee
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: CHAN Chor Ling Catherine (CSC)
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

Reply via email to