PARTITION BY RANGE question

I have a table which is partitioned as follows:
PARTITION BY RANGE (CALL_TIME_MONTH, RECORD_TYPE)
PARTITION PARTITION_200309_MOC VALUES LESS THAN ('200309', 2)
NOLOGGING
TABLESPACE POST_CDR_200309_MOC
How is it possible that this partition holds data of 200309 (and not 200308) ???!?:
select min(CALL_TIME_MONTH), max(CALL_TIME_MONTH) from my_table partition (PARTITION_200309_MOC)
200309, 200309

CREATE TABLE POST_CDR
ID NUMBER NOT NULL,
ENTRY_DATE DATE NOT NULL,
RECORD_TYPE NUMBER,
CALL_TIME_MONTH VARCHAR2(6 BYTE) NOT NULL,
FNAME VARCHAR2(100 BYTE),
FILE_ID NUMBER
NOLOGGING
TABLESPACE POST_CDR_MAIN
PARTITION BY RANGE (CALL_TIME_MONTH, RECORD_TYPE)
PARTITION PARTITION_200406_MOC VALUES LESS THAN ('200406', MAXVALUE)
NOLOGGING
TABLESPACE POST_CDR_200406_MOC
PARTITION PARTITION_200406_MTC VALUES LESS THAN ('200406', MAXVALUE)
NOLOGGING
TABLESPACE POST_CDR_200406_MTC
PARTITION PARTITION_200407_MOC VALUES LESS THAN ('200407', 2)
NOLOGGING
TABLESPACE POST_CDR_200407_MOC
PARTITION PARTITION_200407_MTC VALUES LESS THAN ('200407', MAXVALUE)
NOLOGGING
TABLESPACE POST_CDR_200407_MTC
PARTITION PARTITION_200408_MOC VALUES LESS THAN ('200408', 2)
NOLOGGING
TABLESPACE POST_CDR_200408_MOC
PARTITION PARTITION_200408_MTC VALUES LESS THAN ('200408', MAXVALUE)
NOLOGGING
TABLESPACE POST_CDR_200408_MTC

Similar Messages

  • Change partitioned column range in range partioning in 11g

    Hi All,
    First of all , i am thankful to all of you for your help and suggestions in past. I have one new issue. I am using Oracle 11. There is one new functionality in 11g to do range paritioning while table creation and do daily partitioning.
    CREATE TABLE TEST(
    DUE_DAY DATE,
    ID VARCHAR2(10 BYTE),
    NAME VARCHAR2(25 BYTE)
    PARTITION BY RANGE (DUE_DAY)
    INTERVAL( NUMTODSINTERVAL(1,'DAY'))
    PARTITION FIRST VALUES LESS THAN (TO_DATE('2012-02-05 12:00:00', 'SYYYY-MM-DD HH24:MI:SS')));
    Now I found i create the partition range wrong so each partition has data from previous day 12:00 afternoon to today 12:00 afternoon instead of daily data from 00:00 am to 11:59 pm because i mentioned wrong range in partition.
    I supposed to do like this:
    CREATE TABLE TEST(
    DUE_DAY DATE,
    ID VARCHAR2(10 BYTE),
    NAME VARCHAR2(25 BYTE)
    PARTITION BY RANGE (DUE_DAY)
    INTERVAL( NUMTODSINTERVAL(1,'DAY'))
    PARTITION FIRST VALUES LESS THAN (TO_DATE('2012-02-05 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')));
    My question is: Is there any way i can change it now as table already has huge data in it, so i cant go with creation of another partitioned table with correct partition range? Please let me know your suggestions and comments to resolve this issue.
    Regards
    Dev
    Edited by: Keen2Learn on Feb 10, 2012 9:12 AM

    Keen2Learn wrote:
    My question is: Is there any way i can change it now as table already has huge data in it, so i cant go with creation of another partitioned table with correct partition range? Please let me know your suggestions and comments to resolve this issue.Nope.
    I don't think it is possible to achieve this without creating a new/an intermediate table.
    If you can afford down-time, you should create new table, load data into it (in parallel with nologging), drop original table and rename new table.
    If you want this switchover as online operation, you can use DBMS_REDEFINITION as follows:
    SQL> select * from v$version ;
    BANNER                                                                                                                                                                    
    Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production                                                                                                    
    PL/SQL Release 11.2.0.2.0 - Production                                                                                                                                    
    CORE     11.2.0.2.0     Production                                                                                                                                                
    TNS for Linux: Version 11.2.0.2.0 - Production                                                                                                                            
    NLSRTL Version 11.2.0.2.0 - Production                                                                                                                                    
    SQL> CREATE TABLE TEST(
      2  DUE_DAY DATE,
      3  ID VARCHAR2(10 BYTE),
      4  NAME VARCHAR2(25 BYTE)
      5  )
      6  PARTITION BY RANGE (DUE_DAY)
      7  INTERVAL( NUMTODSINTERVAL(1,'DAY'))
      8  (
      9  PARTITION FIRST VALUES LESS THAN (TO_DATE('2012-02-01 12:00:00', 'SYYYY-MM-DD HH24:MI:SS')));
    Table created.
    SQL> insert into test(due_day, id) select (trunc(sysdate, 'MM')+(10/24)) + ((5*level)/24), level from dual connect by level <= 12 ;
    12 rows created.
    SQL> commit ;
    Commit complete.
    SQL> exec dbms_stats.gather_table_stats(user, 'TEST');
    PL/SQL procedure successfully completed.
    SQL> select partition_name, num_rows from user_tab_partitions where table_name = 'TEST' ;
    PARTITION_NAME                   NUM_ROWS                                                                                                                                 
    FIRST                                   0                                                                                                                                 
    SYS_P115                                5                                                                                                                                 
    SYS_P116                                4                                                                                                                                 
    SYS_P117                                3                                                                                                                                 
    SQL> SELECT * FROM TEST PARTITION (FIRST) ;
    no rows selected
    SQL> SELECT * FROM TEST PARTITION (SYS_P115) ;
    DUE_DAY              ID         NAME                                                                                                                                      
    01-FEB-2012 15:00:00 1                                                                                                                                                    
    01-FEB-2012 20:00:00 2                                                                                                                                                    
    02-FEB-2012 01:00:00 3                                                                                                                                                    
    02-FEB-2012 06:00:00 4                                                                                                                                                    
    02-FEB-2012 11:00:00 5                                                                                                                                                    
    SQL> SELECT * FROM TEST PARTITION (SYS_P116);
    DUE_DAY              ID         NAME                                                                                                                                      
    02-FEB-2012 16:00:00 6                                                                                                                                                    
    02-FEB-2012 21:00:00 7                                                                                                                                                    
    03-FEB-2012 02:00:00 8                                                                                                                                                    
    03-FEB-2012 07:00:00 9                                                                                                                                                    
    SQL> SELECT * FROM TEST PARTITION (SYS_P117);
    DUE_DAY              ID         NAME                                                                                                                                      
    03-FEB-2012 12:00:00 10                                                                                                                                                   
    03-FEB-2012 17:00:00 11                                                                                                                                                   
    03-FEB-2012 22:00:00 12                                                                                                                                                   
    SQL> exec DBMS_REDEFINITION.CAN_REDEF_TABLE('hr','TEST',DBMS_REDEFINITION.CONS_USE_ROWID);
    PL/SQL procedure successfully completed.
    SQL> CREATE TABLE INTR_TEST(
      2  DUE_DAY DATE,
      3  ID VARCHAR2(10 BYTE),
      4  NAME VARCHAR2(25 BYTE)
      5  )
      6  PARTITION BY RANGE (DUE_DAY)
      7  INTERVAL( NUMTODSINTERVAL(1,'DAY'))
      8  (
      9  PARTITION FIRST VALUES LESS THAN (TO_DATE('2012-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')));
    Table created.
    SQL> exec DBMS_REDEFINITION.START_REDEF_TABLE('hr', 'TEST', 'INTR_TEST', 'due_day due_day, id id, name name', dbms_redefinition.cons_use_rowid);
    PL/SQL procedure successfully completed.
    SQL> exec DBMS_REDEFINITION.SYNC_INTERIM_TABLE('hr', 'TEST', 'INTR_TEST');
    PL/SQL procedure successfully completed.
    SQL> exec DBMS_REDEFINITION.FINISH_REDEF_TABLE('hr', 'TEST', 'INTR_TEST');
    PL/SQL procedure successfully completed.
    SQL> exec dbms_stats.gather_table_stats(user, 'TEST');
    PL/SQL procedure successfully completed.
    SQL> select partition_name, num_rows from user_tab_partitions where table_name = 'TEST' ;
    PARTITION_NAME                   NUM_ROWS                                                                                                                                 
    FIRST                                   0                                                                                                                                 
    SYS_P118                                2                                                                                                                                 
    SYS_P119                                5                                                                                                                                 
    SYS_P120                                5                                                                                                                                 
    SQL> SELECT * FROM TEST PARTITION (FIRST) ;
    no rows selected
    SQL> SELECT * FROM TEST PARTITION (SYS_P118) ;
    DUE_DAY              ID         NAME                                                                                                                                      
    01-FEB-2012 15:00:00 1                                                                                                                                                    
    01-FEB-2012 20:00:00 2                                                                                                                                                    
    SQL> SELECT * FROM TEST PARTITION (SYS_P119);
    DUE_DAY              ID         NAME                                                                                                                                      
    02-FEB-2012 01:00:00 3                                                                                                                                                    
    02-FEB-2012 06:00:00 4                                                                                                                                                    
    02-FEB-2012 11:00:00 5                                                                                                                                                    
    02-FEB-2012 16:00:00 6                                                                                                                                                    
    02-FEB-2012 21:00:00 7                                                                                                                                                    
    SQL> SELECT * FROM TEST PARTITION (SYS_P120);
    DUE_DAY              ID         NAME                                                                                                                                      
    03-FEB-2012 02:00:00 8                                                                                                                                                    
    03-FEB-2012 07:00:00 9                                                                                                                                                    
    03-FEB-2012 12:00:00 10                                                                                                                                                   
    03-FEB-2012 17:00:00 11                                                                                                                                                   
    03-FEB-2012 22:00:00 12                                                                                                                                                   
    SQL> select dbms_metadata.get_ddl('TABLE','TEST') from dual ;
    DBMS_METADATA.GET_DDL('TABLE','TEST')                                                                                                                                     
      CREATE TABLE "HR"."TEST"                                                                                                                                                
       (     "DUE_DAY" DATE,                                                                                                                                                      
         "ID" VARCHAR2(10),                                                                                                                                                       
         "NAME" VARCHAR2(25)                                                                                                                                                      
       ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255                                                                                                                        
      STORAGE(                                                                                                                                                                
      BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)                                                                                                       
      TABLESPACE "USERS"                                                                                                                                                      
      PARTITION BY RANGE ("DUE_DAY") INTERVAL (NUMTODSINTERVAL(1,'DAY'))                                                                                                      
    (PARTITION "FIRST"  VALUES LESS THAN (TO_DATE(' 2012-02-01 00:00:00', 'SYYYY-MM                                                                                          
    -DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION DEFERRED                                                                                                     
      PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING                                                                                                        
      STORAGE( BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)                                                                                              
      TABLESPACE "USERS" )                                                                                                                                                    
    SQL> drop table intr_test purge ;
    Table dropped.
    SQL> drop table test purge ;
    Table dropped.
    SQL> spool offHope this helps.

  • Partition by range using greater than or in between statment?

    Can you partition by range using greater than or in between statment? If so, can someone please post the syntax?

    ji**** wrote:
    Can you partition by range using greater than or in between statment? If so, can someone please post the syntax?http://download.oracle.com/docs/cd/B10500_01/server.920/a96524/c12parti.htm
    CREATE TABLE sales_range
    (salesman_id  NUMBER(5),
    salesman_name VARCHAR2(30),
    sales_amount  NUMBER(10),
    sales_date    DATE)
    PARTITION BY RANGE(sales_date)
    PARTITION sales_jan2000 VALUES LESS THAN(TO_DATE('02/01/2000','DD/MM/YYYY')),
    PARTITION sales_feb2000 VALUES LESS THAN(TO_DATE('03/01/2000','DD/MM/YYYY')),
    PARTITION sales_mar2000 VALUES LESS THAN(TO_DATE('04/01/2000','DD/MM/YYYY')),
    PARTITION sales_apr2000 VALUES LESS THAN(TO_DATE('05/01/2000','DD/MM/YYYY'))
    );

  • Partition by Range(c1,c2) and have c1 to be MAXVALUE for a specific c2

    I have a table where two of the columns are used for PARTITION BY RANGE(C1,C2). Is it possible to have a partition scheme where for a specific c2, c1 can be MAXVALUE? The number of records of for a specific C2 are very few and I would like to have just one partition for all C1 values.

    >
    I have a table where two of the columns are used for PARTITION BY RANGE(C1,C2). Is it possible to have a partition scheme where for a specific c2, c1 can be MAXVALUE? The number of records of for a specific C2 are very few and I would like to have just one partition for all C1 values.
    >
    If you want one partition for all C1 values for a particular C2 then you need to reverse the order of the partition keys and use PARTITION BY RANGE(C2, C1).
    drop table myTable cascade constraints;
    CREATE TABLE myTable (c1 number, c2 number, description varchar2(30))
    PARTITION BY RANGE (C2, C1)
      (PARTITION p_before3_5 VALUES LESS THAN (3, 5),
       PARTITION p3_5_to_4_5  VALUES LESS THAN (4,5),
       PARTITION p4_5_to_5  VALUES LESS THAN (5,maxvalue),
       PARTITION p_special_6  VALUES LESS THAN (7,0),
       PARTITION future     VALUES LESS THAN (MAXVALUE,0));
    insert into myTable (c2, c1) values (5, 3);
    insert into myTable (c2, c1) values (6, 3);
    insert into myTable (c2, c1) values (6, 8);
    insert into myTable (c2, c1) values (7, 3);
    select * from mytable partition (p_special_6);
    C1,C2,DESCRIPTION
    3,6,
    8,6,The 'p_special_6' partition captures everything for C2 = 6 assuming that the min value of c1 is 0. Note that the previous partition has to be defined as '(5, maxvalue)' to capture everything less than C2 = 6.
    See Example 4-21 Creating a multicolumn range-partitioned table in the doc link already provided for other examples.

  • TIMESTAMP(6) Partitioned Key -   Range partitioned table ddl needed

    What is DDL syntax for TIMESTAMP(6) Partitioned Key, Range partitioned table
    Edited by: oracletune on Jan 11, 2013 10:26 AM

    >
    What is DDL syntax for TIMESTAMP(6) Partitioned Key, Range partitioned table
    >
    Not sure what you are asking. Are you asking how to create a partitioned table using a TIMESTAMP(6) column for the key?
    CREATE TABLE TEST1
        USERID                 NUMBER,
        ENTRYCREATEDDATE     TIMESTAMP(6)
    PARTITION BY RANGE (ENTRYCREATEDDATE) INTERVAL(NUMTOYMINTERVAL(1, 'MONTH'))
        PARTITION P0 VALUES LESS THAN (TO_DATE('1-1-2013', 'DD-MM-YYYY'))
    )See my reply Posted: Jan 10, 2013 9:56 PM if you need to do it on a TIMESTAMP with TIME ZONE column. You need to add a virtual column.
    Creating range paritions automatically

  • Hash Partition vs Range

    I have a table into which data is inserted daily and contain customer nos. Most of the queries contain where clauses with customer no. field and date field.
    I am looking for some suggestions on the type table to be created (IOT or Normal) and also the partitioning options, hash/range on date/customer no or composite partitioning. Range partitioning on date is an obvious solution but the table may need maintantance in the future creating new partitions.

    You didn't specify Which oracle version and OS you are using. How can we know that what you are running and your table structure.
    Also, your buffer busy waits are culprit and this might due to index range scan happening for every insert. But this is a guess

  • Change partition by range column

    Hi,
    is it possible (oracel 11g) to change partition by range column for a table without recreating the whole table ?
    now i have it : partition by range (COLUMN_A)
    i need it : partition by range (COLUMN_B)
    Thanks

    Yes
    Demos: http://www.morganslibrary.org/reference/partitions.html#rp
    Look at the section titled: "Alter Table For Partitions"

  • Problem exchanging partitions using range partitioning

    I have a range-partitioned table. Here's a cut down version....
    CREATE TABLE MY_TABLE
       (     VALUE           NUMBER,
         PARTITION_KEY      NUMBER
      PARTITION BY RANGE ("PARTITION_KEY")
    (PARTITION "P1"  VALUES LESS THAN (2),
      PARTITION "P2"  VALUES LESS THAN (3),
      PARTITION "P3"  VALUES LESS THAN (4),
      PARTITION "P4"  VALUES LESS THAN (5),
      PARTITION "P5"  VALUES LESS THAN (6),
      PARTITION "P6"  VALUES LESS THAN (7),
      PARTITION "P7"  VALUES LESS THAN (8));For the process I'm working on, I want to be able to:
    - create a table as a copy of one of the partitions
    - do some processing on that table
    - exchange the updated table back into the partitioned table
    I can achieve this as follows....
    CREATE TABLE MY_TABLE_COPY_P7 AS (SELECT * FROM MY_TABLE WHERE PARTITION_KEY = 7);
    ... do processing ...
    ALTER TABLE MY_TABLE DROP PARTITION P7;
    ALTER TABLE MY_TABLE ADD PARTITION P7 VALUES LESS THAN (8);
    ALTER TABLE MY_TABLE EXCHANGE PARTITION P7 WITH TABLE MY_TABLE_COPY INCLUDING INDEXES;However, this only works if the partition I'm adding back in is the highest partition.
    If I try do take out one of the middle partitions, then add it back I get an error:
    SQL] ALTER TABLE MY_TABLE ADD PARTITION P5 VALUES LESS THAN (6);
    ALTER TABLE MY_TABLE ADD PARTITION P5 VALUES LESS THAN (6)
    ERROR at line 1:
    ORA-14074: partition bound must collate higher than that of the last partitionAny ideas on how I can exchange one of the middle partitions with having to first drop the higher ones?
    Btw, I have to use range partitioning as we're using spatial, which only supports range partitioning.
    Cheers,

    Actually, you can do the exchange partition thing with 8i and over. After creating my_table from your script, I did:
    SQL> INSERT INTO my_table VALUES (1,7.5);
    1 row created.
    SQL> INSERT INTO my_table VALUES (2, 7.2);
    1 row created.
    SQL> INSERT INTO my_table VALUES (3,7.7);
    1 row created.
    SQL> CREATE TABLE my_tab_tmp AS
      2  SELECT * FROM my_table
      3  WHERE 1=2;
    Table created.
    SQL> ALTER TABLE my_table EXCHANGE PARTITION P7 WITH TABLE my_tab_tmp;
    Table altered.
    SQL> SELECT * FROM my_tab_tmp;
         VALUE PARTITION_KEY
             1           7.5
             2           7.2
             3           7.7
    SQL> SELECT * FROM my_table;
    no rows selected
    SQL> UPDATE my_tab_tmp
      2  set value = value * 20;
    3 rows updated.
    SQL> COMMIT;
    Commit complete.
    SQL> ALTER TABLE my_table EXCHANGE PARTITION P7 WITH TABLE my_tab_tmp;
    Table altered.
    SQL> SELECT * FROM my_tab_tmp;
    no rows selected
    SQL> SELECT * FROM my_table;
         VALUE PARTITION_KEY
            20           7.5
            40           7.2
            60           7.7You will, of course, need to re-build any global indexes on my_table.
    When you first create my_tab_tmp, you should also create indexes to match any local indexes on the partitions, then do the exchange partition using the INCLUDING INDEXES clause. You could also skip creating the indexes and then re-create them after exchanging the updated table with the partition.
    Note that none of this will work if you are changing values of partition_key so thatthey fall out of the range for the partition.
    HTH
    John

  • [ask] change value partition by range

    hi
    i create table partition by range
    CREATE TABLE EQU_PARAM_MONITORINGRANGE
      SERIAL_NO         VARCHAR2(32 BYTE),
      ID_EQU_PARAMETER  INTEGER,
      TIME_STAMP        DATE,
      VALUE             FLOAT(126)
    PARTITION BY RANGE (ID_EQU_PARAMETER)
      PARTITION PARAM_RANGE1 VALUES LESS THAN (18)
      PARTITION PARAM_RANGE2 VALUES LESS THAN (36)
      PARTITION PARAM_RANGE3 VALUES LESS THAN (MAXVALUE)
    )and i want to change partition_range1 under 16,how to change it??

    You do it like this:
    SQL> select PARTITION_NAME, HIGH_VALUE from user_tab_partitions where table_name = 'EQU_PARAM_MONITORINGRANGE';
    PARTITION_NAME                 HIGH_VALUE
    PARAM_RANGE1                   18
    PARAM_RANGE2                   36
    PARAM_RANGE3                   MAXVALUE
    SQL> alter table EQU_PARAM_MONITORINGRANGE split partition PARAM_RANGE1 at (16) into (partition PARAM_RANGE1a, partition PARAM_RANGE1b);
    Table altered.
    SQL> select PARTITION_NAME, HIGH_VALUE from user_tab_partitions where table_name = 'EQU_PARAM_MONITORINGRANGE';
    PARTITION_NAME                 HIGH_VALUE
    PARAM_RANGE2                   36
    PARAM_RANGE3                   MAXVALUE
    PARAM_RANGE1A                  16
    PARAM_RANGE1B                  18
    SQL> alter table EQU_PARAM_MONITORINGRANGE drop partition PARAM_RANGE1B;
    Table altered.
    SQL> select PARTITION_NAME, HIGH_VALUE from user_tab_partitions where table_name = 'EQU_PARAM_MONITORINGRANGE';
    PARTITION_NAME                 HIGH_VALUE
    PARAM_RANGE2                   36
    PARAM_RANGE3                   MAXVALUE
    PARAM_RANGE1A                  16
    SQL>Make sure to rebuild all global indexes.
    Asif Momen
    http://momendba.blogspot.com

  • Drive partitioning and recovery question

    My laptop is suffering some performance issues, and general cleanup doesn't seem to be doing much, so I was thinking of going through the recovery to give the laptop a fresh start.
    The only thing is currently my DVD drive doesn't seem to be working, so backing stuff up is awkward, to put it mildly.
    If I create a new partition of the HDD to store some of the files I want to keep, will the recovery process delete this?  Or does it just get rid of the stuff on the C drive?
    This question was solved.
    View Solution.

    Hi,
    Which ever way, you need to backup your files/data to elsewhere, not on the SAME physical HDD.
    Good luck.
    BH
    **Click the KUDOS thumb up on the left to say 'Thanks'**
    Make it easier for other people to find solutions by marking a Reply 'Accept as Solution' if it solves your problem.

  • Partition by range

    Hi folks.
    We need create a new table with partition. Today this table already exist and we will recreate with partition.
    The table have a VARCHAR column, that the application insert the data in this format -->YYYYMMDDHH24MISS.
    For example --> 20120812000000.
    This data is a "date" but insert in a VARCHAR2 column.
    Can we create the table with range partition using this VARCHAR2 column, and make control of a Range partition by week, month. ?
    Tks

    Don't be afraid of breaking Oracle by actually trying things.
    And you can't break the documentation by reading it.
    http://docs.oracle.com/cd/B28359_01/server.111/b32024/partition.htm#sthref34
    >
    Range Partitioning
    Range partitioning maps data to partitions based on ranges of values of the partitioning key that you establish for each partition. It is the most common type of partitioning and is often used with dates. For a table with a date column as the partitioning key, the January-2005 partition would contain rows with partitioning key values from 01-Jan-2005 to 31-Jan-2005.
    Each partition has a VALUES LESS THAN clause, which specifies a non-inclusive upper bound for the partitions. Any values of the partitioning key equal to or higher than this literal are added to the next higher partition. All partitions, except the first, have an implicit lower bound specified by the VALUES LESS THAN clause of the previous partition.
    A MAXVALUE literal can be defined for the highest partition. MAXVALUE represents a virtual infinite value that sorts higher than any other possible value for the partitioning key, including the NULL value.

  • Convert range partition to range-hash composite partition

    Hi,
    I have several tables that are range partitioned on date and each table has several partitions as they are partitioned for each day. Is there anyway I con convet these table using alter statements to make them a composite? Thanks.

    No, You can't with alter command change partitioning type.
    http://www.stanford.edu/dept/itss/docs/oracle/10g/server.101/b10739/partiti.htm
    Create a new table with needed one partitioning type and insert there all data.

  • Oracle Partition maintenance range information required

    Hi
    I would like to know the range between oldest partition and the newest partition on a table. can some body help me with this?
    I have a query that gives me all the partition tables in the database ,now I would like to get the date of oldest partition and the newest partition to get the rentention period..any help would be appreciated..
    here is what I have get all the partition tables
    SELECT table_owner, table_name,max(partition_name)
    FROM dba_tab_partitions p
    WHERE p.table_name IN
    (select distinct c.TABLE_NAME
    from dba_part_key_columns p, dba_tab_cols c
    where p.name = c.TABLE_NAME
    and p.column_name = c.COLUMN_NAME
    and p.object_type = 'TABLE'
    and c.DATA_TYPE = 'DATE'
    and p.owner NOT IN ('SYS', 'SYSTEM'))
    and p.table_name not like 'BIN%'
    group by table_owner, table_name
    order by table_owner;

    What is your 4 digit Oracle version?
    Provide an example of a table and what you consider to be the 'oldest' and 'newest' partitions. Are you talking about tables that are RANGE partitioned? INTERVAL partitioned? What about subpartitions?
    Why does your query use MAX(partition_name)? How is that information useful - partitions might have any names including system generated ones.
    And why would the oldest and newest give you retention period?
    For simple RANGE partitioned tables the range info is in the HIGH_VALUE column (a LONG - so need to use PL/SQL) of DBA_TAB_PARTITIONS.
    Suggest you first work out a step-by-step manual process for doing what you want to do and then work on automating it.
    Post an example of your manual process.

  • PID VI - Output Range Question

    I have a question concerning the PID VI and it's output range option.
    "What is gained or lost from using 0-100 versus -100 to 100 for a default output range?"
    My application:
     My application provides the PID VI a setpoint and a process variable, both in degrees Celsius. I see that the output from the VI has a default range of -100 to 100. The power supply that I want to power accepts an input range of 0.0035 - 0.020 mV.
    If I simply enter that range into the VI, the output is either zero or 0.020.
    I can get other values if I use the larger scale and then convert them to the smaller numbers. I am trying to decide between using the range 0 - 100 or going with the default range of -100 to 100 and simply cutting off anything below zero in the conversion to mV. What is gained or lost from using 0-100 versus -100 to 100 for a default output range?
    Thank you
    -Ron

    Here is an example of the four situations.
    Thank you,
    -Ron
    Attachments:
    PID Single.vi ‏129 KB

  • PID range question

    Hi,
    I'm trying to understand what is the proper way to define a PID output range. here is the problem:
    I want to control the roll angle of an aircraft which gets input between 0 and 2.5 volts, when 0 means full left and 2.5 means full right. so if the angle is just right I'd like the PID output to be 1.25.
    what is the proper way to write it?
    should I set the PID's output range to [0 to 2.5] or use [-100 to 100] and adjust the output accordingly using an expression node with [(x+100)/80], or should I use an entirely different method?
    I currently use 0-2.5 which works fine at the steady state, but at the beginning of the run, when the aircraft is level I get an output of 0, which tilts it violently to the left.
    Another question is what is the proper way to reverse the PID's output:
    Because of different axes definitions, sending 2.5 to the roll channel will increase the roll feedback, while sending 2.5 to the pitch channel will reduce the pitch. So I need to inverse the PID's action, but again, I don't know what will be the proper way of doing it:
    should I inverse the output range (i.e 100 to -100), or should I multiply by -1 either the proccess variable, the setpoint or the output?
    thanks a lot for your comments!
    Solved!
    Go to Solution.

    Hi shayelk,
    the result of negating P would practicaly be similar to multiplying the output by -1, right?
    Well, negating P changes the direction the PID control works. It's like changing from a heater to a cooler…
    What do you mean by "provide the manual control at all times"?
    From the help of Advanced PID:
    manual control specifies the value of the control output when auto? is FALSE.
    When auto? is FALSE, this VI uses manual control. This VI uses bumpless transfer from manual control to automatic control.
    When the PID is off (auto?=FALSE) it will output the value wired at manual control. When switching to auto?=TRUE it will not jump to a new output value, but will "sweep" to a new value as is said: bumpless…
    I think that's what you want: when activating the PID it should start with the last value provided by manual control…
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

Maybe you are looking for

  • I want to move my downloads from the downloads page to a folder and have no idea how to do it.

    I use Firefox to do all my downloads. To retrieve them I go to Tools and use the drop down list - downloads. I can't figure out where, on my computer they are so that I can email them as attachments or put them in folders. Would someone help me with

  • How to create a parameter?

    dear friends i'm a recent oracle developer. i face a problem in the graphic builder . i need to create a peremater within the graphic builder . i issued this sql command select sum(sal),sal_date from salary_table where sal_date between :para_d1 and :

  • Crashes upon launching games...

    When I try launch most games on my macbook pro (early 2011) it either sits in the dock or just crashes instantly after displaying. Ive tried completelly uninstalling and reinstalling, repairing disk permissions and even completelly reinstalling the O

  • Sending email at same time cfmail

    Hi... Im using cfmail (CF8)  on a CFC, to allow users to sent email from a big mailing list. It was working fine, but Today, two users started to send their own e-mails at same time, but we recieve the emails  mixed ...I mean the first email Subject,

  • Full Hard Drive and Missing iPhoto Library

    I have having serious problems with my iMac. I am running Mac OS X Version 10.5.8 and iPhoto '08 Version 7.1.5. I recently began receiving a message stating that my start up disk was nearly full, so I began "cleaning up" my iPhoto. By cleaning I mean