Create a partitioned table

Hi all
I want to create a table that may exist for the next 100 years (pessimistic how I am), or maybe for the next 1000 years (now, I expanded my mind) in Oracle 9i (... oh I can't help it). I want to create a partitioned table that will store the data into partitions on annual basis and scores on monthly basis, I create a table with partitions? If Yes, then how?

* 009 *.

Yes, 9i, you create explicitly in each partition. You would normally create not all partitions in future when the table was created in the first place - you would normally a process that regularly added additional partitions.

11.1 and later versions, you can use range partitioning to have Oracle automatically creates new partitions that they became necessary.

Justin

Tags: Database

Similar Questions

  • Create no partition Table partitioning

    Dear all,

    I have a table that is not partition, and it has about 20 G data... If I want that table with say DATE_M partition column

    Please can anyone suggest the best way to do it.

    Thank you

    To create a partitioned table

    (1) you must make a backup of the existing one you can take expdp or DEC

    (2) remove the table and create the same table now with partitions (a minimum score is required)

    you want a range of ex-based partition if you use a date column

    (3) loading data from the previous table into the new partitioned table, either by DEC or impdp, the inserts will be automatically in their respective partitions and you don't mention explicitly.

    Their is no other possible way to partition a non partitioned table, you can do than workarounds to minimize the downtime of the table trying different ways to load data into the partitioned table.

    You can use the enable row movement clause of create table and also use local indexes for easy maintenance partition.

  • How to create a partitioned table

    Apex 4.2

    Oracle 11g

    There is a large table, which have 160000 rows, I would like to create a partitioned table to improve performance, but could not find a way to create a.

    Concerning

    Hello

    I don't see how your question relates to APEX, unless you mean how to make APEX builder object Explorer.

    Answer is simple, you can do it from the object browser.

    You should write a ddl script to create the partitioned table, and run it from sql commands.

    Kind regards

    Jari

  • Creating a partitioned table to an existing table interval.

    Hello

    Is there a way I can create a partitioned table interval of an existing table using DEC? I know how to create a partitioned table in range.

    create the table range_partitioned_table

    partition by range (date_column)

    (

    partition p1 lower ((to_date (' 08/01/2012 ',' mm/dd/yyyy'))),

    lower partition p2 values (to_date (' 09/01/2012 ',' mm/dd/yyyy')),

    PN VALUES LESS THAN (MAXVALUE) PARTITION

    )

    AS SELECT * from existing_table;

    Is there a similar way to the Interval partition an existing table?

    create the table interval_partitioned_table

    partition by range (date_column)

    interval (provide the interval)

    (

    partition p1 lower ((to_date (' 08/01/2012 ',' mm/dd/yyyy'))),

    partition p2 values less (to_date (' 09/01/2012 ',' mm/dd/yyyy')),

    -PN SCORE VALUES LESS THAN (MAXVALUE)

    )

    AS SELECT * from existing_table;

    For example:

    SQL > create table interval_partitioned_table
    2 partition by range (hiredate)
    interval of 3 (numtoyminterval(1,'YEAR'))
    (4)
    5 score below p1 ((to_date (' 08/01/2012 ',' mm/dd/yyyy'))),
    6 partition p2 values less (to_date (' 09/01/2012 ',' mm/dd/yyyy')),
    7 - PARTITION pN VALUES LESS THAN (MAXVALUE)
    8)
    9 AS SELECT * FROM emp;

    Table created.

    SQL >

    SY.

  • Create the partition table

    Hello Experts,

    I only have 4 distinct values in my column of company. I would just create a table with partition depend on these values (201402, 201403,201404, 201405). Should I use LIST or RANGE?

    I just want the table for each distinct value of the part = 201402, 201403,201404, 201405

    So, should what partition key word I use? LIST or RANGE? or OTHERS?

    Create table MY_TABLE NOLOGGING

    as

    SELECT company_id, name...

    Of...

    WHERE THE...

    LIST BY SCORE (company_id);

    However when I use the above, that it does not work, should we specify the values? I want he's leaving for each distinct value? Even if so, should we indicate?

    Furthermore, I want to use partitioning because once I created this table, I could delete e.g. company_id = 201404, rather than delete, I can drop all of the part belonging to the 201404 does make sense? However, at the same time, I want to insert as new campanyid insert into select... where company_id = 201406;  When I insert a new campany_id the Oracle creates a new partition for it?

    Thanks in advance

    Concerning

    Charlie

    Of course you can. It would take less time to test that in order to post and wait for the reply:

    Scott@ORCL > CREATE TABLE company)
    2                       id,
    3                       name
    4                      )
    PARTITION of 5 PER LIST (id)
    6      (
    7 VALUES of company 1 PARTITION (201402),
    8 PARTITION company2 VALUES (201403).
    9 PARTITION company3 VALUES (201404)
    10)
    11 NOLOGGING
    12 AS
    13. SELECT deptno case
    14 when 10 then 201402
    15. when 20 then 201403
    16 when 30 then 201404
    end 17
    ename 18
    19 FROM emp
    20.

    Table created.

    Scott@ORCL >

    SY.

  • Local primary key on reference partitioned Table

    Oracle running on Red Hat Linux Rel6 11.2.0.3.

    I'm on a closed network, so the following must be typed manually.

    I have a table of documents which is essentially the following:

    (entire annual <-primary key)

    whole Source_ID,

    load_dt date,

    date of doc_dt,

    doc_info clob,

    ...)

    which is partitioned on column source_id.

    I created a partitioned table of reference as follows:

    create table doc_entities_prt)

    whole doc_entity_id

    all annual,

    whole entity_id,

    forced doc_ent_fk (annual) references to documents (annual)

    tablespace...

    allow the movement of the line

    benchmark score (doc_ent_fk);

    The annual column in the child table is not unique.  The doc_entity_id column is unique.  I want to set the primary key on doc_entities_prt as a local index on the doc_entity_id column.  I was not able to find the proper syntax to get there, and now I'm wondering if this is even possible? Any ideas appreciated.

    Oops, I missed part that you want to base the PK of this index. No, it is not possible and has nothing to do with the partitoning reference. A unique index can be partitioned only if it includes a partitioning column. You can create a non-unique without partitioning column partitioned index, but then you can't create PK supported by such an index for the same reason - oracle would not be able to verify uniquenes based on this index partition and controls of the cross-partition are not supported:

    SQL > create table documents)
    2 whole annual,
    3 whole source_id,
    load_dt date 4.
    date of doc_dt 5.
    6 doc_info clob
    7                        )
    8 partition by range (source_id)
    9      (
    10 partition p1 values less than (10),
    11 partition p2 values less than (100)
    12)
    13.

    Table created.

    SQL > create index unique documents_pk
    2 on documents (annual)
    (3) local
    partition 4 p1,
    5 partition p2
    6         )
    7.
    on documents (annual)
    *
    ERROR on line 2:
    ORA-14039: partitioning columns must be a subset of the columns of a unique key
    index

    SQL > create index documents_pk
    2 on documents (annual)
    (3) local
    partition 4 p1,
    5 partition p2
    6         )
    7.

    The index is created.

    SQL > alter table documents
    2 Add the constraint documents_pk
    3 key (annual) elementary school
    4 using index documents_pk
    5.
    change the documents table
    *
    ERROR on line 1:
    ORA-14196: specified Index cannot be used to apply the constraint.

    SQL >

    SY.

  • Conversion of non partitioned in partitioned table


    Hi gurus,

    I need to convert the partition table not in the partition.  More flexible way is to use the DBMS_REDEFINITION package for this.
    I do not have access to run this package, when I asked the EXECUTE permission for my dev
    CUSTOMER rejected suggestion that
    "DBMS_REDEFINITION is a method very slow migration that has never been used before here for these migrations.
    so I do not recommend using it as it can trigger bugs and unexpected side effects.


    is this true?

    What will be the alternative method, I can go away?

    Please suggest

    S

    I don't think DBMS_REDEFINITION has bugs.  However, you (and the client) should be familiar with the steps involved.

    Other that that, you will need to create a partitioned table and insert data to the existing table.  You can speed up integration through parallel direct-path insert.

    You will also need to build indexes on the new (partitioned) table.  Define constraints if necessary.  Run grants to other patterns, if necessary.

    Hemant K Collette

  • I need to change the column of the range on my partition table

    Hello

    I created a partition table, but I need to change column of the range "CREATED" to "PREPARED". Two of them date format, but I can't modify this table.

    PARTITION OF RANGE (CREATED)--> I need to change column "CREATED" as "PREPARED".
    (
    INV08 PARTITION VALUES LESS (TO_DATE('01-SEP-2010','DD-MON-YYYY')).
    INV09 PARTITION VALUES LESS (TO_DATE('01-OCT-2010','DD-MON-YYYY')).
    INV10 PARTITION VALUES LESS (TO_DATE('01-NOV-2010','DD-MON-YYYY')).
    PARTITION INV VALUES LESS THAN (MAXVALUE)
    )

    How can I do?

    Published by: user567352 on December 23, 2010 04:10

    Hello

    As far as I know, dbms_redefinition didn't even know about the partitioning:

    1. you create a new empty table that matches your need + (that is where you defined you new partition key) +.
    2. you start the names of submiting of redefinition of existing and newly created table 'interim' table
    3. you leave enough time to get the work done
    4. you have finished redefining (the name of the table are swapped)
    And voila!

    Be sure to test thorougly the process of redefinition and the performance impact that may occur until you make it to your production !
    ;-)

  • importing into a partitioned table of interval 11g

    as I took export utility simple partition table 8i exp not rained so 100 k lines in there.

    and imported with the import utility in the interval of 11g partitioned based on the date column.

    There were imported, but did not what I expected...

    If we execute the simple insert for partition interval 11g command, it create new partition automatically according to the strategy of partition.

    Here's the demo...

    created range partitioned table on the date with shift interval column...

    CREATE TABLE TEST.xxx_HIST
    (
    xxx_DATE DATE NOT NULL,
    P_ROLL_CONVENTION CHAR (2),
    R_ROLL_CONVENTION CHAR (2),
    P_COMPOUNDING_IND CHAR (2),
    R_COMPOUNDING_IND CHAR (2),
    P_CALC_METHOD CHAR (2),
    R_CALC_METHOD CHAR (2),
    P_SPREAD_AMT NUMBER (28,12).
    R_SPREAD_AMT NUMBER (28,12).

    )
    partition by range (xxx_DATE)
    interval (numtoyminterval(3,'MONTH'))
    store (security)
    (
    values of pQ1 lower partition (to_date('2010-01-01','yyyy-mm-dd'))
    ) IN PARALLEL.


    -IMPORTED FROM ROWS IN THE TABLE...

    ======================================================================
    Connected to: Oracle Database 11 g Enterprise Edition Release 11.1.0.7.0 - 64 bit Production
    With partitioning, OLAP, Data Mining and Real Application Testing options

    Export file created by EXPORT: V08.01.07 direct

    CAUTION: objects have been exported by SYSTEM, not by you

    . import of xx_ARCH in TEST objects
    . . import of 141749 lines imported from the table 'xxx_HIST '.
    Import completed successfully without warnings.
    ========================================================================



    -HE HAS A LOT OF DATES OF DIFF IN THERE...



    SQL > SELECT COUNT (DISTINCT xxx_DATE) TEST.xxx_HIST;

    COUNT (DISTINCT xxx_DATE)
    -----------------------------
    1371


    28-MARCH 06
    10 FEBRUARY 06
    9 FEBRUARY 05
    20 FEBRUARY 02
    3 JUNE 02
    10 MAY 04
    26 DECEMBER 03
    31 JANUARY 03

    xxx
    ---------
    21 JULY 08
    31 OCTOBER 05
    25 APRIL 08
    28 APRIL 08
    12 OCTOBER 06
    DECEMBER 21 07
    28 DECEMBER 04


    -BUT STILL ALL DUMPED INTO A PARTITION


    SQL > SELECT nom_partition FROM DBA_TAB_PARTITIONS WHERE TABLE_OWNER = 'TEST ';

    NOM_PARTITION
    ------------------------------
    PQ1

    It all dumped in a partition...

    fact partition interval 11g creates the partition automatically in function whose lines if imported... when we import lines in there...? or am I missing something?

    any idea guys?

    Seems to be a poor strategy for me because if I am not mistaken, there is no way to specify the order of the imported lines. If you import a line with the date max as your first row... bang, you get a range partition created for you and the rest falling.

    I think you'd be better import these data into a table in step and then by a

    insert into new_fancy_partition_table
    select *
    from old_8_temporary_imported_table
    order by date_column asc
    

    Or create the partitions manually.

    I just realized that you specify a partition in your create table statement (missed that on cursory inspection). And I think you misunderstand how the interval works... it's for values LARGER than the existing partitions ONLY...

    http://download.Oracle.com/docs/CD/E11882_01/server.112/e10592/statements_7002.htm#SQLRF01402

    "
    INTERVAL clause

    Use this clause to set the interval of partitioning the table. Range partitions are partitions based on a digital range interval or datetime. * They extend from range partitioning by commanding the database to automatically create partitions of the specified range or interval when the data inserted in the table exceed all the partitions.* range
    "

    Published by: Tubby on August 16, 2010 18:32

    Additional document link.

  • Method of partition table

    Hello

    I need to partition a table with values from another table reference. I explain:

    I have this two tables:

    TABLE 1
    Identification number
    Number of ID_TABLE2


    TABLE 2
    Date to the DATE
    Identification number

    index (ID)

    I need to create a new table as TABLE1 partitioned by date, but which presents the values of TABLE2. must be something like this...

    CREATE TABLE newtable AS AS SELECT * FROM table1
    LIST BY SCORE (ID.)
    (
    PARTITION P1 VALUES ('Select ID from TABLA2 where DATE =' 2010-01-01').
    PARTITION P2 VALUES ('Select ID from TABLA2 where DATE =' 2010-01-01');
    )

    It s possible to do?
    Any sugestion another way is welcome.

    Kind regards

    Hello

    You cannot create a partition table based on the dynamic value. You can create it like this.

    CREATE TABLE newtable AS AS SELECT * FROM table1
    LIST BY SCORE (ID.)
    (
    PARTITION P1 VALUES ('A ', ' B', 'C').
    PARTITION P2 VALUES (WAS E ',' F ',' ');
    )

    Concerning

  • Need to create the Partition in the history table

    Hello

    I have an audit table that stores the data for the last 8 years in it and the customer wants to retain the data for the last 8 years. Now as adding data to this table is increasing, there is a delay in execution of report which are acquired by querying on this table.

    Basically, they go a from date and to date. Then these date are compared with two columns of dates in the table. The condition of the query will be as below

    TRUNC (NVL (DATE1, DATE2)) > = TRUNC (TO_DATE (?, ' dd/mm/yyyy ""))

    AND TRUNC (NVL (DATE1, DATE2)) < = TRUNC (TO_DATE (?, ' dd/mm/yyyy ""))

    Users can query for any date range.

    I am thinking of creating a Partition of the range on this table for each month during the 8 years of data. Please suggest on the question of whether I should use partition interval range to make it more effective. And would also create an Index on this partition for the above two day columns.

    12 (months) SO * 8 (years) = 98 would be created partitions. This will not overload the schema of database/Tablespace? Y at - it another effective way to set the table.

    Please suggest and let me know for any clarification.

    There are 2 approaches (but not limited to 2) to create the Partition on an existing table:

    Note: There is no ALTER TABLE statement to convert a heap table to a partitioned table.

    1. create a temporary Partitioned table with the same types of data in the column. Take a dump of the original table (HEAP) export and import the dump into the newly created partitioned intermediate table. After checking the data file the original and rename the interim even as the original table.

    2 using the package Oracle DBMS_REDEFINITION automates the steps above from said (not exactly the same steps, however) and its done online - which means there is no required downtime, the original table may undergo DML operations during this process of redefinition. View partitioning of a table online with DBMS_REDEFINITION | Oracle instructor

    According to my understanding if let us know as a partition interval then in April if there is an inserted record then it will create a new partition for the month of April will be of value less than 30 April 2014 "and all other documents created in April will pass under it"

    Yes, it's a feature of 11g, which Oracle manages adding partitions as needed. In earlier versions DBA can add partitions manually from time to time. Reference www.gavinsoorma.com/2009/09/11g-interval-partitioning/

    Here the reason for check the sent_out_datetime NVL will be NULL for few records, so in this case we want to get the records for dates of mapping them to received_datetime

    In addition, try to replace the NVL with COALESCE and test it. This would help improve performance.

  • How to create the partition on a column in a table on a daily basis

    Hi all
    I wrote a query that does not, I have a column of varchar type, and I want to create the partition of the table on that column based daily interval. but ist is in error...

    my query is...

    create the table user_detail
    (username varchar2 (50))
    The user ID number,
    country varchar2 (25).
    accupation varchar2 (100),
    company varchar2 (100),
    joindate varchar2 (14))
    partition by range (joindate)
    INTERVAL (NUMTOYMINTERVAL (1, 'DAY'))
    (PARTITION newone VALUES LESS THAN (to_date (April 13, 19 ', 'aa-mm-dd')));


    error is:

    Error from the 1 in the command line:
    create the table user_detail
    (username varchar2 (50))
    The user ID number,
    country varchar2 (25).
    accupation varchar2 (100),
    company varchar2 (100),
    joindate varchar2 (14))
    partition by range (joindate)
    INTERVAL (NUMTOYMINTERVAL (1, 'DAY'))
    (PARTITION newone VALUES LESS THAN (to_date (April 13, 19 ', 'aa-mm-dd')))
    Error in the command line: 1 column: 0
    Error report:
    SQL error: ORA-14751: type of invalid data for the partitioning column of a partitioned table interval


    Can I create partition on the varchar data type?

    On ORA11gR1 it works:

    --virtual column
    CREATE TABLE TEST(joindate VARCHAR2(14), part_joindate AS (to_date(joindate,'dd.mm.yyyy'))) partition by range (part_joindate)
    INTERVAL(NUMTOYMINTERVAL(1, 'YEAR'))
    (PARTITION newone VALUES LESS THAN (to_date('2013-04-19', 'yyyy-mm-dd')))
    ;
    
    INSERT INTO TEST(joindate) VALUES('19.04.2013');
    SELECT * FROM TEST;
    
    DROP TABLE TEST;
    --aux column
    CREATE TABLE TEST(joindate VARCHAR2(14), part_joindate AS (to_date(joindate,'dd.mm.yyyy'))) partition by range (part_joindate)
    INTERVAL(NUMTOYMINTERVAL(1, 'YEAR'))
    (PARTITION newone VALUES LESS THAN (to_date('2013-04-19', 'yyyy-mm-dd')))
    ;
    
    INSERT INTO TEST(joindate) VALUES('19.04.2013');
    SELECT * FROM TEST;
    
    DROP TABLE TEST;
    

    Published by: spajdy on April 19, 2013 14:58

  • Create index partition in the partition table tablespace

    Hello

    I am running a work custom that

    * Creates a tablespace by day
    * Creates the daily table partition in the created tablespace
    * Removes the days tablepartition X
    * Removes the storage space for this partition of X + 1 day.

    The work above works perfectly, but it has problems with the management of the index for these partitioned tables. In the old database (10g - single node), all indexes and partitions exist in a BIG tablespace and when I imported the table creation script in the new database, I changed all the partitions table & index to go in their respective space.

    For example:

    Table_name... Nom_partition... Index_Part_name... Tablespace_name
    ============...================............====================...........=================
    TABL1... TABL1_2012_07_16... TABL1_IDX_2012_07_16... TBS_2012_07_16
    TABL1... TABL1_2012_07_15... TABL1_IDX_2012_07_15... TBS_2012_07_15


    But now, when the job is run, it creates the index in the tablespace TBS_DATA default.

    Table_name... Nom_partition... Index_Part_name... Tablespace_name
    ============...================.............====================...........=================
    TABL1... TABL1_2012_08_16... TABL1_IDX_2012_08_16... TBS_DATA
    TABL1... TABL1_2012_08_15... TABL1_IDX_2012_08_15... TBS_DATA


    I can issue alter index rebuild to move the index to its tablespace default, but how can I make sure that the index is created in the designated tablespace?

    NOTE: the partition/tablespace management work that I run only creates the partition of the table and not the index.


    The new env is a cluster of CARS of 2 nodes 11 GR 2 on Linux x86_64.


    Thanks in advance,
    aBBy.

    try something like this

    ALTER table tab_owner.tab_name add the partition v_new_part_nm
    values less (to_date('''|| v_new_part_dt_formatted ||'') ((', "DD-MON-YYYY)) tablespace ' | part_tbs
    update the index (ind1_name (partition ind_partition_name tablespace ind_part_tbs)
    ind2_name (partition tablespace ind_part_tbs ind_partition_name))
    ;

  • create the list-range partition table

    Database version: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi

    I am trying to create a partition with beach-LIST table, and I get this error message, is the oracle 10.2.0.4 database supports to create the list range (composite) score


    {
    SQL > CREATE TABLE tbp_list_range
    (
    DATE OF REPORT_DATE,
    member_id_01 varchar2 (2),
    Date of DATE_SERVICE,
    member_id varchar2 (15)
    )
    PARTITION OF LIST (member_id_01)
    SUBPARTITION BY RANGE (DATE_SERVICE)
    (
    PARTITION SPTYR04M01_C VALUES ('AA', 'aa')
    NOLOGGING
    COMPRESS)
    SUBPARTITION PTYR12M011 VALUES LESS THAN (TO_DATE (' 2012-01-01 00:00:00 ',' SYYYY-MM-DD HH24:MI:SS ',' NLS_CALENDAR = GREGORIAN ')),
    SUBPARTITION PTYR12M021 VALUES LESS THAN (TO_DATE (' 2012-02-01 00:00:00 ',' SYYYY-MM-DD HH24:MI:SS ',' NLS_CALENDAR = GREGORIAN ')),
    SUBPARTITION recent1 VALUES LESS THAN (MAXVALUE)
    ),
    PARTITION SPTYR04M01_Yo VALUES ('BJ', 'bj')
    NOLOGGING
    COMPRESS)
    SUBPARTITION PTYR12M01 VALUES LESS THAN (TO_DATE (' 2012-01-01 00:00:00 ',' SYYYY-MM-DD HH24:MI:SS ',' NLS_CALENDAR = GREGORIAN ')),
    SUBPARTITION PTYR12M02 VALUES LESS THAN (TO_DATE (' 2012-02-01 00:00:00 ',' SYYYY-MM-DD HH24:MI:SS ',' NLS_CALENDAR = GREGORIAN ')),
    SUBPARTITION recent2 VALUES LESS THAN (MAXVALUE)
    )
    )
    /
    SUBPARTITION BY RANGE (DATE_SERVICE)
    *
    ERROR on line 9:
    ORA-00922: missing or not valid option


    SQL > select * from v version $;

    BANNER
    ----------------------------------------------------------------
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
    PL/SQL Release 10.2.0.4.0 - Production
    CORE 10.2.0.4.0 Production
    AMT for Linux: release 10.2.0.4.0 - Production
    NLSRTL Version 10.2.0.4.0 - Production

    }

    Any help would be greatly appreciated.

    Thank you

    There are no ladders of partitioning in 10g either.

    Have a look here for partitioning methods: http://www.orafaq.com/wiki/Composite_partitioning

  • Table created with partitions... user_tab_subpartitions well, but Alter table.

    Hello
    I have create table with venakt.table_name with subpartitons.
    This request, given the right output.
    Select nom_partition, nom_tablespace, count (*) from user_tab_subpartitions
    where table_name = 'SDRS_New '.
    Nom_partition group, nom_tablespace
    order by 1;
    NOM_PARTITION NOM_TABLESPACE COUNT (*)

    SDR_2010_12_29 CDR01 28
    SDR_2011_01_01 CDR01 28
    SDR_2011_01_02 CDR01 28

    BUT...

    SQL > alter drop partition table SDRS_New SDR_2010_12_29;
    ALTER drop partition table SDRS_New SDR_2010_12_29
    *
    ERROR on line 1:
    ORA-00942: table or view does not exist
    ;

    Other info. below available... why this pls suggest.

    Select object_name, created from user_objects where object_name like '% CDRS_New ';

    CDRS_New
    26/01/2011
    .
    .
    755 selected lines.

    Where is the prob not understood...

    SQL > user sho
    The USER is 'PMAX '.
    SQL > select TABLE_NAME, STATUS, PARTITIONED from user_tables
    2 where table_name like 'CDRS % ';
    CDRS VALID YES
    INVALID CDRS_EXT
    CDRS_New VALID YES

    SQL > user sho
    The USER is 'PMAX '.
    SQL > drop table CDRS_New;
    drop table CDRS_New
    *
    ERROR on line 1:
    ORA-00942: table or view does not exist

    where table_name = 'SDRS_New '.

    Did you accidentally create a case-sensitive table name?

    If so, you will need to enclose it in quotes whenever you reference.

    SQL> create table "Mixed" (n number);
    
    Table created.
    
    SQL> drop table mixed;
    drop table mixed
               *
    ERROR at line 1:
    ORA-00942: table or view does not exist
    
    SQL> drop table "Mixed";
    
    Table dropped.
    

Maybe you are looking for