Impossible to delete the partitions of a table with the number of rows is zero

Hi all

I want to delete all partitions on all the tables in a schema having the number of lines equal to zero.

I use the queries below to get a solution.

Select 'EDIT '. '' || 'TABLE ' | TABLE_NAME | 'DROP '. 'PARTITION | Nom_partition from dba_tab_partitions where TABLE_OWNER = "xyz";

Select count (*) in the table table_name partition (nom_partition).

Edited by: 887563 October 17, 2011 13:39

If you trust your statistics, you can simply use the stat num_rows in dba_tab_partitions:

select *
from dba_tab_partitions
where table_owner = 'MY_SCHEMA'
and num_rows = 0;

But I think what you try to get some code like this:

declare
  v_rows number;
  v_statement varchar2(500);
begin
  for c in (select *
            from dba_tab_partitions
            where table_owner = 'MY_SCHEMA') loop
    v_statement := 'select count(*) from '||c.table_name||
                   ' partition ('||c.partition_name||') where rownum=1';
    --dbms_output.put_line(v_statement);  --for debugging
    execute immediate(v_statement)
    into v_rows;
    --dbms_output.put_line(c.table_name||' '||c.partition_name||' '||v_rows);  --for debugging
    if v_rows = 0 then
      v_statement := 'ALTER TABLE '||c.TABLE_NAME||' DROP PARTITION ' || c.PARTITION_NAME;
      dbms_output.put_line(v_statement); --shows the drop statements
      --execute immediate(v_statement); --remove comment to execute
    end if;
  end loop;
end;

Tags: Database

Similar Questions

  • get the number of rows affected by their table top

    Hello, I need to count the number of rows updated in table form. In the process of ApplyMRU, I can use the string substitution #MRU_COUNT # to show the lines updated in a success message, but I need to get this value and store it on a table. Any help would be much appreciated. Thank you.

    oscarjavier99 wrote:

    Hello, I need to count the number of rows updated in table form. In the process of ApplyMRU, I can use the string substitution #MRU_COUNT # to show the lines updated in a success message, but I need to get this value and store it on a table. Any help would be much appreciated. Thank you.

    For that you would benefit from the APEX$ ROW_STATUS integrated substitution string.

    1. create a page element display only (in my case P15_UPDATED_ROWS) Save Session State set to Yes and the Type of Condition is set to never.

    2. Add a calculation after the shows with a Type of static assignment and calculation value 0 to reset the counter whenever the page is sent.

    3. Add an On submit - after calculations and Validations process of PL/SQL page linked to your tabular presentation with a Status of Type PL/SQL Expression and Expression 1 :apex$row_status = 'U' and the code of the following process :

    :p15_updated_rows := :p15_updated_rows + 1;
    

    If you don't actually means "day" in the strict sense, and then change the status of process to include possible APEX$ ROW_STATUS 'C', 'U', and "D" values as needed. If you want to count all created, updated and deleted lines, do not add the condition to the process, but make sure the extended run is set to createand changed lines.

  • Display the option button if the number of rows in the table is equal to 1

    I'm having issues there buy maybe a simple script out there.

    I have a table which can have up to four lines. If the table contains only one row, an option button can be clicked to change the format/entry of cells in this row. I have to hide this box of a user option, if they added more of a line to the table and make it available again if they reduce the number of lines to one.

    I have everything else works well (radio buttons change line format, add/delete rows in the table using buttons, number of rows in the first column)

    Anyone have any ideas?

    See you soon

    Bobby

    You can place it in the code that adds more lines when running... If you have questions send the fomr to [email protected] so I can check it out...

    Thank you

    Srini

  • If I block a caller, can I delete the number and still blocked it

    If I block a caller, can I delete the number and still blocked it?

    Yes. It is possible to block a contact and then delete the contact. They will be still blocked.

  • Count the number of rows in a table (s)

    Hi all

    I have a TKT_PRIORITY_LK table that I want to count the number of rows returned by a priority level... say Low, Medium, High, critical. I want to be able to count how many of each created are they, instead returning ID instead, if making any sense... Can you please help with this.

    Example; Select count (*) in TKT_PRIORITY_LK

    PRIORITY group

    Kind regards

    Sandrine

    Try this

    Select a.PRIORITY, count (*) from TKT_PRIORITY_LK a, TKT_TICKET_MAIN b

    where a.id = b.PRIORITY_ID

    A.PRIORITY group

  • How can I get the number of rows in the table using Sunopsis API target in ODI 10 g?

    Hi guys,.

    In fact, I want to send an alert message as soon as the interface is run from a package. I've included alert OdiSendMail that sends an email once the interface is running.

    Could someone please tell how to get the number of rows inserted into the table the Sunopsis API target.

    I tried to use < % = odiRef.getNbRows () % >, but this has not worked for me. Since I am a beginner, could you please help out me

    This is my mail to send ODI format

    "The population of data managed to < % = odiRef.getSysDate () % >

    Total of lines in the target table is: < - need an API code-> "


    Kind regards

    Clinton

    Published by: LawrenceClinton on February 25, 2013 20:53

    Hello

    Create the project with details below variable

    Nom_de_variable: Total_Row_Count

    Type of variable: Variable discount

    Definition tab:
    Data type: digital
    Action: No persistent

    Refresh the tab:
    Schema: provide the schema of your repository to work and be

    SELECT log.nb_row
    THE journal of snp_step_log, snp_scen_step step
    WHERE log.nno = step.nno
    AND step.scen_no = (SELECT scen_no FROM snp_scen_step WHERE step_name='<%=odiRef.getPrevStepLog ('STEP_NAME") % > ')
    AND log.sess_no = '< % = odiRef.getSession ("SESS_NO") % >' code at low
    AND step.step_name = ' < % = odiRef.getPrevStepLog ("STEP_NAME") % > '

    Note: add this variable after the stage of interface in your package (after the interface anywhere you can place), you can add this variable before ODISendEmailNotification in your package

    call this varciable * #Total_Row_Count * in the Notification of ODISendEmail

    for example :

    Data has been fulfilled successfully in < % = odiRef.getSysDate () % >
    Total no of lines filled are: * #Total_Row_Count *

    it will work

    cordially,
    Phanikanth

    edited by: Phanikanth on February 28, 2013 01:13

    edited by: Phanikanth on February 28, 2013 01:14

  • Displays the number of rows in the table displaying a named criteria query data

    I created a test named for my View, called 'Criteria1' and Criteria1 to create a group of ADF with Table query. I want to display the number of rows in result when a search is performed. How can I do?

    Thanks in advance,
    Tom

    As mentioned, you can add outputText and you must give OutputText partialTriggers as query component your Id. Thus, when you give a search on the query component, it will refresh the outputText with the number of lines.


    ID = "ot1" partialTriggers = "id of the component of motion here" / > ""

  • Get the number of rows in the oracle table

    Hi all
    I want to get the total number of rows in the sql to the appmodule table.
    After you apply the criteria to view some on the view object. If he try with getallrowsinrange the number of rows found within the viewobject was but I want a total number of rows in the sql table.

    How can I get that

    I use jdev 11.1.1.5

    Thanks in advance

    I threw something together, quick and dirty, don't hesitate to optimize.

    Assuming you want the County table, I put the code in a subclass of EntityDefImpl since it is representing a table in the middle tier.

    public class EmpDefImpl
          extends EntityDefImpl {
      /**
       * This is the default constructor (do not remove).
       */
      public EmpDefImpl( ) {}
    
      //~ Methods ****************************************************************************
    
      public long getTableRowCount( DBTransaction transaction ) {
        String query = getQuery( );
        String countQuery = String.format( "SELECT COUNT(*) FROM (%s)", query );
        long count = 0;
    
        ViewObject vo = transaction.createViewObjectFromQueryStmt( countQuery );
    
        try {
          vo.executeQuery( );
    
          Row row = vo.first( );
          Number number = (Number)row.getAttribute( 0 );
          count = number.longValue( );
        } finally {
          vo.remove( );
        }
    
        return count;
      }
    }
    

    Depending on your card type, you may not get an oracle.jbo.domain.Number, but something else, so the cast may need correction.

    Usage example:

    public class EmpEditViewImpl extends ViewObjectImpl {
      public EmpEditViewImpl() {
      }
    
      protected void executeQueryForCollection( Object object, Object[] object2, int i ) {
        super.executeQueryForCollection( object, object2, i );
    
        EmpDefImpl def = ( EmpDefImpl )getEntityDef( 0 );
        long tableRowCount = def.getTableRowCount( getDBTransaction() ) );
    
        // Do something with it
      }
    }
    

    As you can see, the code is fairly generic. Also, you might be able to put this in a base extension ADF class.

    Sascha

    Published by: Sascha Herrmann on June 7, 2012 14:39

  • How do to display the number of rows Inserted/deleted etc. in PL/SQL

    In Oracle 10 g PL/SQL, I have a delete statement in a stored procedure. This isn't in a cursor. I want to see the number of lines that I deleted. I can use dbms_output.put_line package. I should know this, but I don't have time to perfect syntax. How do I get the number of rows that are deleted and the display via dbms_output.put_lline?

    For example:

    set serveroutput on
    
    begin
    
       delete  dept;
    
       dbms_output.put_line(sql%rowcount);
    
    end;
    /  
    

    Miguel

  • Add the number of rows in the table on the Page Framework OA

    Hi all

    I need to add a line at the bottom of a table in the OA framework to display the number of lines for the underlying table VO. Can someone point me in the right direction to get there?

    Thanks in advance!

    Kristopher

    Hi Kristopher,

    As directed by your post, my understanding is that you want to have a line at the bottom of the table that contains a field that displays the number of rows found in the t... RT?

    You can implement the same in the following way,
    You can add a footer to your table and add a messageStyledText point in it. At this point, you can assign the value of VO.getFetchedRowCount ().

    Hope this is what you are looking for.

    Kind regards
    REDA Papdeja

  • Count the number of rows in each table

    I have a list of table names, how to write a query to find out the number of rows in each table.

    Select the table table_name from all_tables where owner = 'XXX' and num_row > 100
    or
    Select the table table_name from all_tables where owner = 'XXX' and sample_size > 100


    isn't quite working.
    Why?

    Thanks in advance,

    Published by: mpt_fz on January 12, 2010 12:06

    In recent versions of the db (11g):

    SQL> select table_name, column_value cnt
      from user_tables, xmltable (('count(ora:view("'||table_name||'"))'))
    where table_name in ('EMP', 'DEPT', 'BONUS')
    /
    TABLE_NAME                     CNT
    ------------------------------ -----
    BONUS                          0
    DEPT                           5
    EMP                            14   
    
  • How to determine the number of rows in the database and save the result to a local variable?

    Hello

    I'm a newbie in the use of TestStand, databases and SQL, and now I've met difficulties. I use TestStand 2014 (32 bit).

    I have a need to know the number of rows in a database and save that number in a local variable. I tried to practice using the database of the Types of step provided with TS. I tried to use the following in a SQL statement:

    Locals.NumberOfRows = ("SELECT COUNT (*) FROM TEST_TABLE")

    It returns an error: specified value is not the expected type. My goal is possible in this way, or I'm doing this completely wrong?

    -RautSa

    Thank you for your response, Norbert. I have a database of who wins new values at random, and sometimes I need the exact number of rows in this table.

    I managed to achieve my goal by using the SQL statement: "SELECT COUNT (*) as Rowcount OF TEST_TABLE", followed by a data GET operation, which records that number of lines in a local variable.

    -RautSa

  • See the number of rows affected the performance of sqlplus to a sql file

    Hello

    It's just we have a sql file that contains a bunch of select/update/insert statements.

    I have a unix script that calls sqlplus on this sql file. However, at the exit I don't get the number of rows affected.

    Without adding any code in the input sql file, how can I change the code of sqlplus shell script to print the number of rows affected for each statement in the sql file?

    ${ORACLE_HOME}/bin/sqlplus -L >> ${LOG_FILE} 2>&1  << EOF
      ${ORAID}/${ORAPASS}@${ORAINS}
      whenever sqlerror exit sql.sqlcode;
      set echo on;
      set feedback off;
      set serveroutput on;
      @${SQL_FILE};
      exit;
    EOF
    RC=$?
    

    The SQL_FILE of entry content is:

    select 12 "col1" from dual;
    select 'abcd' "col2" from dual;
    select;
    select 13 'col3' from dual;
    

    The result of the race of sqlplus is (LOG_FILE):

    SQL*Plus: Release 11.2.0.2.0 Production on Fri Jun 6 14:28:00 2014
    
    Copyright (c) 1982, 2010, Oracle.  All rights reserved.
    
    Enter user-name: 
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
    Data Mining and Real Application Testing options
    
    SQL> SQL> SQL> SQL> SQL> SQL> select 12 "col1" from dual;
    
          col1
    ----------
            12
    SQL> select 'abcd' "col2" from dual;
    
    col2
    ----
    abcd
    SQL> select;
    select
         *
    ERROR at line 1:
    ORA-00936: missing expression
    
    
    Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
    Data Mining and Real Application Testing options
    

    Thank you

    Srinivas - y.

    1. echo setting
    2. Set feedback off;

    use

    Set of feedback on

  • Limit the number of rows retrieved

    We have the need to limit the number of rows retrieved in a table for some users.

    We tried to put this by adding a policy that limits the number of rows. Here is the code:


    create or replace function
    usu01_access_policy
    (obj_schema varchar2, obj_name varchar2) return varchar2
    is
    d_predicate varchar2 (2000);
    Start
    If the user = "PEPE01" then
    d_predicate: =.
    "rownum < 11';
    on the other
    d_predicate: =.
    ' 1 = 1' ;
    end if;
    Return d_predicate;
    end;

    This code works well when you query the table like this:

    Select * from usu01;

    the number of rows retrieved is 10.

    But when we define a clause 'where' the query does clause 10 recovered lines before, getting only the lines of the first 10 with the condition 'where' = true.

    Is there a way to limit the number of retrieved rows from a table, but by first applying the 'where' clause to the whole table and later the ' rownum < limit ' condition?

    Thank you

    Why do you limit the number of lines of output? It is a customer number, not a database problem, I would say.
    Which should be resolved within the query itself. Using rownum without orderly subquery also return different results on each run.
    Take a look here for top - N query: http://www.oracle.com/technetwork/issue-archive/2007/07-jan/o17asktom-093877.html

    Nicolas.

  • query table name and number of rows in a table

    Hello

    I am trying to create a pl/sql to insert the results of all the tables in my database and the number of rows in a table, you guys are quick scripts to do this?

    Thanks in advance,
    Blais

    My file of old-gold of messages from this forum:

    SQL> SELECT
      2    table_name,
      3    TO_NUMBER(
      4      EXTRACTVALUE(
      5        XMLTYPE(
      6  DBMS_XMLGEN.getxml('SELECT COUNT(*) c FROM '||table_name))
      7        ,'/ROWSET/ROW/C')) cnt
      8  FROM user_tables;
    
    TABLE_NAME                            CNT
    ------------------------------ ----------
    TEST_LONG_RAW                           1
    TEST_LONG_RAW_TO_BLOB                   1
    DEPT                                    4
    EMP                                    14
    BONUS                                   0
    SALGRADE                                5
    TEST_DBMS_ERROR_LOG2                    4
    TEST_DBMS_ERROR_LOG1                    6
    ERR$_TEST_DBMS_ERROR_LOG2               2
    DR$CTX_INDX_MULTI$I                    48
    TEST_MULTI_COL_SRC                      4
    
    TABLE_NAME                            CNT
    ------------------------------ ----------
    DR$CTX_INDX_MULTI$R                    22
    EMP_TEST                               14
    DR$CTX_INDX_MULTI$K                     4
    DR$CTX_INDX_MULTI$N                     0
    TEST_SQLLDR_UNICODE                     4
    
    16 rows selected.
    
    SQL> 
    

Maybe you are looking for

  • Screen MBP cleaning

    Hi, what is the best way to clean screen retina MBP? Any help much appreciated. Thank you

  • PXI_Add GAUSSIAN additive white noise to a carrier generated using NI RFSG mode of arbitrary waveforms

    Hello! Does anyone know how to add AWGN carrier generated using NI RFSG?I know how to generate a signal CW using NI RFSG arbitrary signals mode (see attached file), but I have not found out yet how to add AWGN to it. Thank you! Aina

  • Do not correctly install the webcam

    I just found my computer after that that he decided to have a huge attack on me.In any case, I lost my disc for webcam, but drivers found on the official site, I tried to install my webcam but it installed automatically as a basic starter HP cam, I t

  • Retrieve the values of the executable (Dialog.Ask)

    Hello world! I have a situation where I have to ask the user a question according to the status of a remote object (sent to a web service).  This operation is performed within a Thread, so I can't directly use the Dialog.Ask () because it translates

  • Windows will not be activated

    Desktop HP-P2-1343WProduct number: H3Z09AAE2-1800 APU/Radeon AMD64-bit Windows 8 (OEM preinstalled)Product ID: XXXXX-XXXXX-XXXXX-XXOEM The acquisition of the new system in a few years. 8.1 update when it came out. I had a problem a few weeks ago. Had