Find range partition key information

Hello, I try to insert a row in a table and I get this msg: "inserted partition key is beyond highest legal partition key". This table has a range partitioning key but I don't know on which colmn(s) this partioning is working.
Is there a way to find this information?
- which column
- which are the values
Thx in advance,
Pascal

Look at the following views, you should be able to find the information
USER_IND_PARTITIONS
USER_IND_SUBPARTITIONS
USER_LOB_PARTITIONS
USER_LOB_SUBPARTITIONS
USER_TAB_PARTITIONS
USER_TAB_SUBPARTITIONS

Similar Messages

  • Modifing range partition key values

    I have table in oracle 10g with range partiotion , now I want to change or
    modify the partition key values . How i can do that

    Depending on the level of change???
    If your just rejiging boundaries in the range then you can merge, re split partitions? Without specific information on the change its hard to guess what is in your mind.
    I have used this method in the past when some of the partitions remain empty and I wish to rebalance the data skew to even up the distribution of a key? Is this what you want to do?
    Or do you intend adding columns to a key without recreating the object? I don't know any way to change this without creating a new object; sorry…. If you have the space create table as select with new range specification would do. Otherwise create csv and sqlload into new defined object after drop and recreate. Hope this helps.
    Kind regards

  • Column Containing Partition Key Condition Information

    I am using 11.2.0.2 on AIX 6.1.
    I am creating a range partition table as below.
    CREATE TABLE SALES_RANGE
      ( prod_id       NUMBER(6)
      , cust_id       NUMBER
      , time_id       DATE
      , channel_id    NUMBER(3)
    PARTITION BY RANGE (time_id)
    ( PARTITION sales_q1_2012 VALUES LESS THAN (TO_DATE('01-APR-2012','dd-MON-yyyy'))
    , PARTITION sales_q2_2012 VALUES LESS THAN (TO_DATE('01-JUL-2012','dd-MON-yyyy'))
    , PARTITION sales_q3_2012 VALUES LESS THAN (TO_DATE('01-OCT-2012','dd-MON-yyyy'))
    , PARTITION sales_q4_2012 VALUES LESS THAN (TO_DATE('01-JAN-2013','dd-MON-yyyy'))
    );I can find all the information related to this table in dictionary tables like below.
    SQL> SELECT OWNER,
           TABLE_NAME,
           PARTITIONING_TYPE,
           SUBPARTITIONING_TYPE,
           PARTITION_COUNT,
           PARTITIONING_KEY_COUNT,
           STATUS,
           DEF_TABLESPACE_NAME
    FROM DBA_PART_TABLES
    WHERE OWNER='SCOTT';
    OWNER                          TABLE_NAME                     PARTITION SUBPARTIT PARTITION_COUNT PARTITIONING_KEY_COUNT STATUS   DEF_TABLESPACE_NAME
    SCOTT                          SALES_RANGE                    RANGE     NONE                    4                      1 VALID    USERS
    SQL> SELECT TABLE_OWNER,
           TABLE_NAME,
           COMPOSITE,
           PARTITION_NAME,
           PARTITION_POSITION,
           TABLESPACE_NAME,
           LAST_ANALYZED
    FROM DBA_TAB_PARTITIONS
    WHERE TABLE_OWNER='SCOTT'
    ORDER BY PARTITION_POSITION;
    TABLE_OWNER                    TABLE_NAME                     COM PARTITION_NAME                 PARTITION_POSITION TABLESPACE_NAME                LAST_ANAL
    SCOTT                          SALES_RANGE                    NO  SALES_Q1_2012                                   1 USERS                          17-FEB-12
    SCOTT                          SALES_RANGE                    NO  SALES_Q2_2012                                   2 USERS                          17-FEB-12
    SCOTT                          SALES_RANGE                    NO  SALES_Q3_2012                                   3 USERS                          17-FEB-12
    SCOTT                          SALES_RANGE                    NO  SALES_Q4_2012                                   4 USERS                          17-FEB-12
    SQL> SELECT * FROM DBA_PART_KEY_COLUMNS WHERE OWNER='SCOTT';
    OWNER      NAME            OBJEC COLUMN_NAME     COLUMN_POSITION
    SCOTT      SALES_RANGE     TABLE TIME_ID                       1But where can i find the partition key condition i.e. *"VALUES LESS THAN (TO_DATE('01-APR-2012','dd-MON-yyyy'))"* in any dictionary table ?

    Thanks for your quick reply....
    I have already checked and included in my example given.
    SQL> SELECT * FROM DBA_PART_KEY_COLUMNS WHERE OWNER='SCOTT';
    OWNER      NAME            OBJEC COLUMN_NAME     COLUMN_POSITION
    SCOTT      SALES_RANGE     TABLE TIME_ID                       1It's only giving the column name on which partitioning is done, not the partitioning condition.
    My question was, in which table i can check the criteria on which i have range partitioned a table ? Is there an dictionary table which holds information like:
    PARTITION_NAME     PARTITION_CONDITION
    SALES_Q1_2012       VALUES LESS THAN (TO_DATE('01-APR-2012','dd-MON-yyyy')I hope i am clear in my question......

  • I partitioned my MacBook Pro and installed Windows 8 in it.....now I can't find my partition when I pressed option key when booting up.....so how can I do to find the partition to boot...I can see it in the disk manager in Mac....any ideas? thanks..!..

    I partitioned my MacBook Pro and installed Windows 8 in it.....now I can't find my partition when I pressed option key when booting up.....so how can I do to find the partition to boot...I can see it in the disk manager in Mac....any ideas? thanks..!..

    Hi LamboMong,
    just try this:
    http://refit.sourceforge.net
    install, reboot twice and choose the Windows-Partition on next startup.
    (The apple-bootloader doesn't display all bootable harddisks.
    With rEFIt you can boot from all partitions/harddisks on your computer.)
    I hope that will solve your problem.
    Daniel Fernau

  • How to find out the min & max partition_id in a range partition?

    Hi we have a table set up by range partition
    In the table creation script. It goes something like:
    PARTITION PARTD_CUST_3_1_NEW VALUES LESS THAN ('39500')
    so how we can find out this number '39500' from some of the data_dictionary view?
    What we want to do is to set up parallel processing (do-it-yourself) based on partition.
    So the number of parallel process will be based on this ID-range.
    I can find out how many partitions are there by using something like this:
    SELECT COUNT(*)
    FROM all_tab_partitions WHERE table_owner='OWNER_NAME' AND table_name='TABLE_NAME'
    We have 5 partitions now but the table structure can change in the near future even this table has moer than 130Million rows
    I do not want to hardcode this "39500" just in case the table structure changes (partition structure changes)
    Any idea ??

    vxwo0owxv wrote:
    Hi we have a table set up by range partition
    In the table creation script. It goes something like:
    PARTITION PARTD_CUST_3_1_NEW VALUES LESS THAN ('39500')
    so how we can find out this number '39500' from some of the data_dictionary view?
    What we want to do is to set up parallel processing (do-it-yourself) based on partition.
    So the number of parallel process will be based on this ID-range.
    I can find out how many partitions are there by using something like this:
    SELECT COUNT(*)
    FROM all_tab_partitions WHERE table_owner='OWNER_NAME' AND table_name='TABLE_NAME'
    We have 5 partitions now but the table structure can change in the near future even this table has moer than 130Million rows
    I do not want to hardcode this "39500" just in case the table structure changes (partition structure changes)
    Any idea ??query DBA_TAB_PARTITIONS.HIGH_VALUE

  • NULL partition key in RANGE partition

    All,
    This is regarding partitioning a table using RANGE partition method. But the partition key contains null. How do I handle this situation? This is because there is no DEFAULT partition in RANGE partition though its present in LIST partition. Will rows with NULL partition key fall in MAXVALUE partition? Seeking your guidence.
    Thanks,
    ...

    NULLS would fit into the MAXVAL partition yes.
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/partconc.htm#sthref2590
    Thanks
    Paul

  • Unique key on range-partitioned table

    Hi,
    We are using a composite range-hash interval partitioned table
    Uses index - trying to make this have same tablespace as the partitions i.e. local but not liking it
    alter table RETAILER_TRANSACTION_COMP_POR
    add constraint RETAILER_TRANSACTION_COMP_PK primary key (DWH_NUM)
    using index
    LOCAL
    ora-14039: partitioning columns must form a subset of key columns of a unique index
    Without local then fine but doesn't have same tablespace as the partitions and don't want to make this part of partition key.
    Tbale range partitioned - this is just a UK to prevent duplicates

    [oracle@localhost ~]$ oerr ora 14039
    14039, 00000, "partitioning columns must form a subset of key columns of a UNIQUE index"
    // *Cause:  User attempted to create a UNIQUE partitioned index whose
    //          partitioning columns do not form a subset of its key columns
    //          which is illegal
    // *Action: If the user, indeed, desired to create an index whose
    //          partitioning columns do not form a subset of its key columns,
    //          it must be created as non-UNIQUE; otherwise, correct the
    //          list of key and/or partitioning columns to ensure that the index'
    //          partitioning columns form a subset of its key columns

  • 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

  • Partition Pruning on Interval Range Partitioned Table not happening when SYSDATE used in Where Clause

    We have tables that are interval range partitioned on a DATE column, with a partition for each day - all very standard and straight out of Oracle doc.
    A 3rd party application queries the tables to find number of rows based on date range that is on the column used for the partition key.
    This application uses date range specified relative to current date - i.e. for last two days would be "..startdate > SYSDATE -2 " - but partition pruning does not take place and the explain plan shows that every partition is included.
    By presenting the query using the date in a variable partition pruning does table place, and query obviously performs much better.
    DB is 11.2.0.3 on RHEL6, and default parameters set - i.e. nothing changed that would influence optimizer behavior to something unusual.
    I can't work out why this would be so. It very easy to reproduce with simple test case below.
    I'd be very interested to hear any thoughts on why it is this way and whether anything can be done to permit the partition pruning to work with a query including SYSDATE as it would be difficult to get the application code changed.
    Furthermore to make a case to change the code I would need an explanation of why querying using SYSDATE is not good practice, and I don't know of any such information.
    1) Create simple partitioned table
    CREATETABLE part_test
       (id                      NUMBER NOT NULL,
        starttime               DATE NOT NULL,
        CONSTRAINT pk_part_test PRIMARY KEY (id))
    PARTITION BY RANGE (starttime) INTERVAL (NUMTODSINTERVAL(1,'day')) (PARTITION p0 VALUES LESS THAN (TO_DATE('01-01-2013','DD-MM-YYYY')));
    2) Populate table 1million rows spread between 10 partitions
    BEGIN
        FOR i IN 1..1000000
        LOOP
            INSERT INTO part_test (id, starttime) VALUES (i, SYSDATE - DBMS_RANDOM.value(low => 1, high => 10));
        END LOOP;
    END;
    EXEC dbms_stats.gather_table_stats('SUPER_CONF','PART_TEST');
    3) Query the Table for data from last 2 days using SYSDATE in clause
    EXPLAIN PLAN FOR
    SELECT  count(*)
    FROM    part_test
    WHERE   starttime >= SYSDATE - 2;
    | Id  | Operation                 | Name      | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |
    |   0 | SELECT STATEMENT          |           |     1 |     8 |  7895  (1)| 00:00:01 |       |       |
    |   1 |  SORT AGGREGATE           |           |     1 |     8 |            |          |       |       |
    |   2 |   PARTITION RANGE ITERATOR|           |   111K|   867K|  7895   (1)| 00:00:01 |   KEY |1048575|
    |*  3 |    TABLE ACCESS FULL      | PART_TEST |   111K|   867K|  7895   (1)| 00:00:01 |   KEY |1048575|
    Predicate Information (identified by operation id):
       3 - filter("STARTTIME">=SYSDATE@!-2)
    4) Now do the same query but with SYSDATE - 2 presented as a literal value.
    This query returns the same answer but very different cost.
    EXPLAIN PLAN FOR
    SELECT count(*)
    FROM part_test
    WHERE starttime >= (to_date('23122013:0950','DDMMYYYY:HH24MI'))-2;
    | Id  | Operation                 | Name      | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |
    |   0 | SELECT STATEMENT          |           |     1 |     8 |   131  (0)| 00:00:01 |       |       |
    |   1 |  SORT AGGREGATE           |           |     1 |     8 |            |          |       |       |
    |   2 |   PARTITION RANGE ITERATOR|           |   111K|   867K|   131   (0)| 00:00:01 |   356 |1048575|
    |*  3 |    TABLE ACCESS FULL      | PART_TEST |   111K|   867K|   131   (0)| 00:00:01 |   356 |1048575|
    Predicate Information (identified by operation id):
       3 - filter("STARTTIME">=TO_DATE(' 2013-12-21 09:50:00', 'syyyy-mm-dd hh24:mi:ss'))
    thanks in anticipation
    Jim

    As Jonathan has already pointed out there are situations where the CBO knows that partition pruning will occur but is unable to identify those partitions at parse time. The CBO will then use a dynamic pruning which means determine the partitions to eliminate dynamically at run time. This is why you see the KEY information instead of a known partition number. This is to occur mainly when you compare a function to your partition key i.e. where partition_key = function. And SYSDATE is a function. For the other bizarre PSTOP number (1048575) see this blog
    http://hourim.wordpress.com/2013/11/08/interval-partitioning-and-pstop-in-execution-plan/
    Best regards
    Mohamed Houri

  • "ORA-14400: inserted partition key does not map to any partition"

    Hi Experts,
    While loading from DSO to Infocube, we are facing the below issue.,
    Database error text........: "ORA-14400: inserted partition key does no
    any partition"
    Internal call code.........: "[RSQL/INSR//BIC/FZORIMB08C ]"
    Please check the entries in the system log (Transaction SM21).
    "DBIF_RSQL_SQL_ERROR" "CX_SY_OPEN_SQL_DB"
    "GP4JNZKXF93GTRTVQO7A5J3Z2VD" or "GP4JNZKXF93GTRTVQO7A5J3Z2VD"
    "WRITE_ICFACT"
    Information on where terminated:
    Termination occurred in the ABAP program "GP4JNZKXF93GTRTVQO7A5J3Z2VD" - in
    "WRITE_ICFACT".
    The main program was "RSBATCH_EXECUTE_PROZESS ".
    In the source code you have the termination point in line 5185
    of the (Include) program "GP4JNZKXF93GTRTVQO7A5J3Z2VD".
    The program "GP4JNZKXF93GTRTVQO7A5J3Z2VD" was started as a background job.
    Job Name....... "BIDTPR_1999057_1"
    Job Initiator.. "ALE_POS"
    Job Number..... 09074400
    The termination is caused because exception "CX_SY_OPEN_SQL_DB" occurred in
    procedure "WRITE_ICFACT" "(FORM)", but it was neither handled locally nor
    declared
    in the RAISING clause of its signature.
    The procedure is in program "GP4JNZKXF93GTRTVQO7A5J3Z2VD "; its source code
    begins in line
    5147 of the (Include program "GP4JNZKXF93GTRTVQO7A5J3Z2VD ".
    Can anyone help me.
    Regards,
    Aaryan

    Hi Aaryan,
    From an Oracle point of view the error ORA-14400 is due to the partition range where an insert rows with a value out-of-bound of partition range
    The system displays the error message if you want to load data into a partitioned table where the partitions have not been defined correctly.
    Please run the RSRV test "Entries Not Used in the Dimension of an InfoCube " for the relevant Infocube and afterwards repair any errors with "Correct error" button.
    Please have a look at the following notes:
      #509660 - ORACLE ERROR 14400 during update to the InfoCube
      #590370 - too many uncompressed request (f table partitions)
    Finally please do not leave the infocube uncompressed.
    Rgds,
    Colum

  • Doubt on Range Partitions

    Hello everyone.
    Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
    18:44:45 161:tcs237427@EBPP> desc rs_ebpp.rs_mail_job
    Name Null? Type
    JOB_KEY NOT NULL VARCHAR2(50)
    MOF_KEY NOT NULL VARCHAR2(50)
    MOF_PATH VARCHAR2(255)
    REPORT_ID NOT NULL NUMBER(38)
    PROFILE_NAME VARCHAR2(25)
    FILE_PATH VARCHAR2(1024)
    JOB_DATE DATE
    JOB_FINISH_DATE DATE
    SCHEDULED NUMBER(38)
    USER_ID VARCHAR2(25)
    STATUS VARCHAR2(25)
    COMMENTS VARCHAR2(255)
    MAIL_FROM VARCHAR2(255)
    MAIL_TO VARCHAR2(255)
    MAIL_CC VARCHAR2(255)
    MAIL_BCC VARCHAR2(255)
    MAIL_SUBJECT VARCHAR2(255)
    MAIL_MESSAGE VARCHAR2(512)
    DATA7 VARCHAR2(50)
    DATA8 VARCHAR2(50)
    DATA9 VARCHAR2(50)
    DATA20 DATE
    DATA21 NUMBER
    DATA22 NUMBER
    DATA23 NUMBER
    DATA24 NUMBER
    DATA25 NUMBER
    DATA26 FLOAT(126)
    DATA27 FLOAT(126)
    DATA28 FLOAT(126)
    DATA29 FLOAT(126)
    DATA30 FLOAT(126)
    DATA10 VARCHAR2(50)
    DATA11 VARCHAR2(50)
    DATA12 VARCHAR2(50)
    DATA13 VARCHAR2(50)
    DATA14 VARCHAR2(50)
    DATA1 VARCHAR2(50)
    DATA15 VARCHAR2(50)
    DATA16 DATE
    DATA2 VARCHAR2(50)
    DATA17 DATE
    DATA3 VARCHAR2(50)
    DATA4 VARCHAR2(50)
    DATA18 DATE
    DATA5 VARCHAR2(50)
    DATA19 DATE
    DATA6 VARCHAR2(50)
    I tried to create range partition on table whose partitioning key (JOB_KEY) was a VARCHAR2. I was able to create the partitions till 30th Jan.
    16:56:32 SQL> SELECT PARTITION_NAME,TABLE_NAME,HIGH_VALUE FROM DBA_TAB_PARTITIONS WHERE TABLE_NAME='RS_MAIL_JOB_NEW' ORDER BY 1;
    Partition
    Name TABLE_NAME HIGH_VALUE
    P110101 RS_MAIL_JOB_NEW TO_DATE('2011-01-02 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110102 RS_MAIL_JOB_NEW TO_DATE('2011-01-03 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110103 RS_MAIL_JOB_NEW TO_DATE('2011-01-04 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110104 RS_MAIL_JOB_NEW TO_DATE('2011-01-05 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110105 RS_MAIL_JOB_NEW TO_DATE('2011-01-06 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110106 RS_MAIL_JOB_NEW TO_DATE('2011-01-07 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110107 RS_MAIL_JOB_NEW TO_DATE('2011-01-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110108 RS_MAIL_JOB_NEW TO_DATE('2011-01-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110109 RS_MAIL_JOB_NEW TO_DATE('2011-01-10 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110110 RS_MAIL_JOB_NEW TO_DATE('2011-01-11 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110111 RS_MAIL_JOB_NEW TO_DATE('2011-01-12 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110112 RS_MAIL_JOB_NEW TO_DATE('2011-01-13 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110113 RS_MAIL_JOB_NEW TO_DATE('2011-01-14 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110114 RS_MAIL_JOB_NEW TO_DATE('2011-01-15 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110115 RS_MAIL_JOB_NEW TO_DATE('2011-01-16 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110116 RS_MAIL_JOB_NEW TO_DATE('2011-01-17 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110117 RS_MAIL_JOB_NEW TO_DATE('2011-01-18 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110118 RS_MAIL_JOB_NEW TO_DATE('2011-01-19 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110119 RS_MAIL_JOB_NEW TO_DATE('2011-01-20 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110120 RS_MAIL_JOB_NEW TO_DATE('2011-01-21 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110121 RS_MAIL_JOB_NEW TO_DATE('2011-01-22 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110122 RS_MAIL_JOB_NEW TO_DATE('2011-01-23 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110123 RS_MAIL_JOB_NEW TO_DATE('2011-01-24 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110124 RS_MAIL_JOB_NEW TO_DATE('2011-01-25 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110125 RS_MAIL_JOB_NEW TO_DATE('2011-01-26 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110126 RS_MAIL_JOB_NEW TO_DATE('2011-01-27 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110127 RS_MAIL_JOB_NEW TO_DATE('2011-01-28 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110128 RS_MAIL_JOB_NEW TO_DATE('2011-01-29 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110129 RS_MAIL_JOB_NEW TO_DATE('2011-01-30 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    P110130 RS_MAIL_JOB_NEW TO_DATE('2011-01-31 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN
    But after that I started getting below error:
    16:56:40 SQL> alter table rs_ebpp.rs_mail_job_new add partition p110131 values less than (to_date('2011-02-01 00:00:00', 'SYYYY-mm-dd h
    h24:mi:ss', 'nls_calendar=GREGORIAN'));
    alter table rs_ebpp.rs_mail_job_new add partition p110131 values less than (to_date('2011-02-01 00:00:00', 'SYYYY-mm-dd hh24:mi:ss', 'n
    ls_calendar=GREGORIAN'))
    ERROR at line 1:
    ORA-14074: partition bound must collate higher than that of the last partition
    I checked the manual, but didn't find it written anywhere about restriction on column data type for Range partition or others.
    I doubt if creating range partitions on columns with varchar2 is allowed and if yes, not sure why I get that error

    Try to split first partition:
    alter table rs_ebpp.rs_mail_job_new 
    split partition p110201 at (to_date('2011-31-01 00:00:00', 'SYYYY-mm-dd hh24:mi:ss', 'nls_calendar=GREGORIAN'))
    into (partition p110131, partition p110201) ;

  • How can I find Bitlocker External Key File location?

    My Windows 8.1 PC includes a system drive and data drives. All the drivers were encrypted using Bitlocker with the data drives set for autounlock. 
    I recently decrypted the system drive (without decrypting the data drives) and reinstalled the OS, after which my data drives required the Bitlocker recovery key to unlock. 
    However, I had "backed up" the recovery keys to my Microsoft account but now I can find only the recovery keys for the system drive. The recovery keys for the data drives cannot be found on my Microsoft account. 
    I have tried to use the "manage-bde" command at the console to obtain the recovery password but I am only getting the Numerical Password ID and the External Key File Name. Can anyone provide advice on how I can retrieve the passwords or the
    External Key File location?
    Thanks.

    Hi Ridgewood,
    As my point of viewer, the BitLocker Automatic unlock volume is also protected by BitLocker Disk Encryption. The user encrypted information is stored in the registry and volume metadata. After a user unlocks the operating system volume, BitLocker uses the
    encrypted information to unlock the data volume automatically.
    After the reinstallation of the system, the encrypted information is lost and BitLocker can’t unlock the data volume automatically.
    Every volume has own recovery key.
    As mentioned in your post, the data drive require the recovery key to unlock.
    I suggest you to double-check the OneDrive and try to find out where did you store the recovery key.
    If you can’t find the recovery key, we can’t help you to decrypt the data volume.
    Best regards,
    Fangzhou CHEN
    Fangzhou CHEN
    TechNet Community Support

  • Find the partition for the fact table

    Oracle version : Oracle 10.2
    I have one fact table with daily partitions.
    I am inserting some test data in this table for old date 20100101.
    I am able to insert this record in this table as below
    insert into fact_table values (20100101,123,456);
    However I observed that the partition for this date does not exist in the table (all_tab_partitions) morever I am not able to select the data using
    select * from facT_table partition(d_20100101)
    but I am able to extract the data using
    select * from facT_table where date_id=20100101
    could some one please let me know the way to find the partition in which this data might be inserted
    and if the partition for date 20100101 is not present then why insert for that date is working ?

    user507531 wrote:
    However I observed that the partition for this date does not exist in the table (all_tab_partitions) morever I am not able to select the data using
    select * from facT_table partition(d_20100101)Wrong approach.
    but I am able to extract the data using
    select * from facT_table where date_id=20100101Correct approach.
    could some one please let me know the way to find the partition in which this data might be inserted
    and if the partition for date 20100101 is not present then why insert for that date is working ?Who says that the date is invalid..? This is a range partition - which means that each partition covers a range. And if you bothered to read up in the SQL Reference Guide on how a range partition is defined, you will notice that each partition is defined with the end value of the range it covers. There is no start value - as the previous partition's end value is the "+border+" between this and the prior partition.
    I suggest that before you use a database feature you first familiarise yourself with it. Else incorrectly using it, and making the wrong assumptions about it, more than likely results.

  • What Oracle Table contains Partition Key Field Name?

    What Oracle table/view maintains the partition key field name?
    All_Tab_Partitions does not appear to maintain such information.
    When I use Toad -> Schema -> Tables -> Partitions, it lists the partition key field name that the partition is based.
    Thank You

    all_part_key_columns
    or
    USER_part_key_columns
    Edited by: OrionNet on Dec 5, 2008 3:56 PM

  • Is there any plan of allowing non-range partitioning of spatial indexes

    our application is really lacking the ability of spatial index being partitioned by list. We are binning information in our data warehouse by spatial locations, and when we query it (actually, MapViewer is generating a tile), entire geometry set is searched because table is list-partitioned and we cannot have local spatial index.

    Hi,
    I'm not in a position to answer the question about list partitioning, but would a pseudo-list partition implemented as a range partition work? For example, something like this:
    CREATE TABLE customers (
      first_name    VARCHAR2(20),
      last_name     VARCHAR2(20),
      address_1     VARCHAR2(20),
      address_2     VARCHAR2(20),
      city          VARCHAR2(20),
      state_abrv    VARCHAR2(3),
      postal_code   VARCHAR2(10),
      customer_id   NUMBER NOT NULL UNIQUE)
      PARTITION BY RANGE (state_abrv) 
       PARTITION ALASKA         VALUES LESS THAN ('AKz'),
       PARTITION ALABAMA        VALUES LESS THAN ('ALz'),
       PARTITION ARKANSAS       VALUES LESS THAN ('ARz'),
       PARTITION AMERICANSAMOA  VALUES LESS THAN ('ASz'),
       PARTITION ARIZONA        VALUES LESS THAN ('AZz'),
       PARTITION CALIFORNIA     VALUES LESS THAN ('CAz'),
       PARTITION WYOMING        VALUES LESS THAN ('WYz')
       );I've used this method in the past, although I agree a list partitioning solution is much preferred.
    Dan

Maybe you are looking for