Invalid option to TRUNCATE PARTITION in ALTER TABLE

Below edit sql works fine when I run this one.

ALTER TABLE table_name TRUNCATE partition partition_nm UPDATE GLOBAL INDEXES;

But if I run this procedure I get the error message "14054. 00000 - option ALTER TABLE TRUNCATE PARTITION invalid"

create or replace PROCEDURE TRUNCATE_WS_CLAIMS_REPORT

as

whole crsor;

rval around edge;

Start

crsor: = dbms_sql.open_cursor;

DBMS_SQL. Parse (crsor, ALTER TABLE table_name TRUNCATED partition partition_nm INDEXES', dbms_sql.v7 GLOBAL UPDATE);

rval Tip: = dbms_sql.execute (crsor);

DBMS_SQL.close_cursor (crsor);

end;

Can you guide me how to solve this error?

Have you tried to run immediately instead of dbms_sql?

Start

run immediately "ALTER TABLE table_name partition TRUNCATE partition_nm UPDATE GLOBAL INDEXES";

end;

Tags: Database

Similar Questions

  • HowTo archive several Partitions of the Table to a new table?

    We have a very big_table partitioned on the TRAN_DATE column per month.

    PARTITION 'P200310' VALUES LESS THAN (TO_DATE (' 2003-11-01 00:00:00 ',' SYYYY-MM-DD HH24:MI:SS ',' NLS_CALENDAR = GREGORIAN '))
    +.. +
    +.. +
    +.. +
    PARTITION "P201008" VALUES LOWER THAN (TO_DATE (' 2010-09-01 00:00:00 ', 'SYYYY-MM-DD HH24:MI:SS', ' NLS_CALENDAR = GREGORIAN ' "))

    We wanted sheet music archive (consolidated) "P200812" "P200811" "P200810"... and below in a new_table.

    I tested the "swap partition" method but the docs I found offers with one partition is going to a single table, such as:

    P200812-> table1
    P200811-> table2
    etc...
    etc...
    so, I end up with multiple partitions at several tables... not what we wanted.

    I think a merger of all the partitions P200812 and below in a single partition and make the Exchange. What is the quickest way?

    Any help or pointers will be greatly appreciated.

    Thank you.

    Edited by: joey_p May 14, 2010 12:45 AM
    create new_table as select * from big_table where 1=2;  -- create an empty, non-partitioned table
    alter new_table nologging;
    alter session enable parallel dml;
    insert /*+ APPEND PARALLEL (n 2) */ into new_table n
    select /*+ PARALLEL (b 2) */ * from big_table partition (first_partition_name);
    commit;
    insert /*+ APPEND PARALLEL (n 2) */ into new_table n
    select /*+ PARALLEL (b 2) */ * from big_table partition (second_partition_name);
    commit;
    alter table big_table truncate partition (first_partition_name);
    alter table big_table truncate partition (second_partition_name);
    alter table big_table merge partition ....
    

    TRUNCATE and MERGE orders that you would do once you have verified that all the data has been copied to the new table. (and, preferably, after a BACKUP was taken, because integration into new_table was made without redoing loggging.

    Hemant K Collette
    http://hemantoracledba.blogspot.com

  • Partition on existing Tables

    Hello

    I want to archive a database due to too much data into DB everymonth, so I have to delete the records from the previous month, which is about 4 million.

    Can someone give me idea to delete records as soon as possible. My opinion is to create the partition on the table and drop the partition once he becomes older.
    But if I want to introduce the partition then I have to create a partition in an existing table. So please give me the best way to introduce the partition of the existing table.

    It would really help that may suggest meanings.

    Thank you

    Spengler

    Here is an example

    CREATE TABLE my_table (
      id           NUMBER,
      description  VARCHAR2(50),
      create_date date
    )PARTITION BY RANGE (create_date)
    (PARTITION id_id0 VALUES LESS THAN (TO_DATE('26/08/2009', 'DD/MM/YYYY')) TABLESPACE users,
     PARTITION id_id1 VALUES LESS THAN (TO_DATE('27/08/2009', 'DD/MM/YYYY')) TABLESPACE users,
     PARTITION id_id2 VALUES LESS THAN (TO_DATE('28/08/2009', 'DD/MM/YYYY')) TABLESPACE users,
     PARTITION id_id3 VALUES LESS THAN (TO_DATE('29/08/2009', 'DD/MM/YYYY')) TABLESPACE users,
    PARTITION id_id4 VALUES LESS THAN (TO_DATE('30/08/2009', 'DD/MM/YYYY')) TABLESPACE users,
    PARTITION id_max  VALUES LESS THAN  (MAXVALUE) TABLESPACE users);
    

    -Insert the sample data

     INSERT INTO my_table  VALUES (0, 'ZERO',sysdate);
    INSERT INTO my_table  VALUES (1, 'One',sysdate+1);
    INSERT INTO my_table  VALUES (2, 'Two',sysdate+2);
    INSERT INTO my_table  VALUES (3, 'Three',sysdate+3);
    INSERT INTO my_table  VALUES (4, 'Four',sysdate+4);
    COMMIT;
    

    -You can run these queries to check the output.

    select * from my_table;
    select * from my_table partition(id_id0);
    select * from my_table partition(id_id1);
    select * from my_table partition(id_id2);
    select * from my_table partition(id_id3);
    select * from my_table partition(id_id4);
    select * from my_table partition(id_max);
    

    -Split partition

    ALTER TABLE my_table SPLIT PARTITION id_max AT (TO_DATE('01/09/2009', 'DD/MM/YYYY'))
    INTO (PARTITION id_id5 TABLESPACE users,PARTITION id_max TABLESPACE users);
    

    -Insert data into the new partition

    INSERT INTO my_table  VALUES (5, 'FIVE',sysdate+5);
    commit;
    

    -check

    select * from my_table partition(id_id5);
    
  • Insert, append and alter truncate partition table

    Hi all

    My DB is 11.2 Exadata machine. I've done the migration of data from PROD and PROD team says that my DML blocked their DDL. I want to get confirmed here until I have send an email to defend myself.
    My DML is
    insert /*+ append noparallel(t) */ into GPOS_XXX_XXX PARTITION(p3) t 
    SELECT /*+ noparallel(s)*/* FROM  GPOS_XXX_XXX@adw3u_izoom_admin s WHERE srce_sys_id = 1; 
    commit;
    Their DDL resembles
    ALTER TABLE GPOS_XXX_XXX TRUNCATE PARTITION p4
    I did the test and it shows as they were running at the same time very well, busy resource no error will be thrown.

    Don't miss something here, please?

    Best regards
    Leon

    >
    Don't miss something here, please?
    >
    I don't think so. I did a test on 11 GR 2 and there is no conflict. I think that your team of prod is wrong. Ask them to provide a quote to support their application.

    As long as your access direct-path INSERT specifies a particular data then only this partition will be locked.
    See this blog asktom since last year where he addresses a question similar to, but not the same thing as, to yours.
    http://asktom.Oracle.com/pls/Apex/f?p=100:11:0:P11_QUESTION_ID:3580062500346902748
    >
    APPEND it (or parallel direct path load) crashes the segment it targets. But the table lock prevents only the other inserts/changes - NO of QUERIES.

    And also, if you know that you insert in a single partition and you

    Insert / * + append * / into table partition (pname) select...

    Then only THIS partition will be locked.

  • Move the partition of the table and get ORA-14006: invalid partition name

    I'm using oracle 11.2.0.4 and I am trying to move a partitioned table to one tablespace to another.  I checked may times and I have the correct table name and the name of the partition.  However, I get the error ora-14006.

    Can see everything what could be the problem?

    SQL > ALTER TABLE GWPROD. QRY_TES_ROLLINGCUREDITS MOVE PARTITION 201112 TABLESPACE GW_PROD_T2 PARALLEL (DEGREE 4) NOLOGGING;

    ALTER TABLE GWPROD. QRY_TES_ROLLINGCUREDITS MOVE PARTITION TABLESPACE GW_PROD_T2 PARALLEL (DEGREE 4) NOLOGGING 201112

    *

    ERROR on line 1:

    ORA-14006: invalid partition name

    Thanks in advance.

    Names that begin with numbers are not legal partition names. A fool created by placing them between double quotes. You will need to do the same.

  • Partition of truncation: do not delete table data.

    Hi all
    I created the table
    CREATE THE TABLE INTFC_FUSION_TERR. TEST_PARTIES2
    (
    PARTY_ID NUMBER (18),
    PARTY_NUMBER VARCHAR2 (30 CHAR),
    PARTY_NAME VARCHAR2 (360 CHAR),
    NUMBER OF CREATION_DATE,
    NUMBER OF BMONTH
    )
    PARTITION by range (BMONTH)
    (PARTITION MONTH_1 VALUES LESS THAN (1))
    TABLESPACE TABSPC_1,
    MONTH_2 PARTITION VALUES LESS THAN (2)
    TABLESPACE TABSPC_1,
    MONTH_3 PARTITION VALUES LESS THAN (3)
    TABLESPACE TABSPC_1,
    MONTH_4 PARTITION VALUES LESS THAN (4)
    TABLESPACE TABSPC_1,
    MONTH_5 PARTITION VALUES LESS THAN (5)
    TABLESPACE TABSPC_1,
    MONTH_6 PARTITION VALUES LESS THAN (6)
    TABLESPACE TABSPC_1,
    MONTH_7 PARTITION VALUES LESS THAN (7)
    TABLESPACE TABSPC_1,
    MONTH_8 PARTITION VALUES LESS THAN (8)
    TABLESPACE TABSPC_1,
    MONTH_10 PARTITION VALUES LESS THAN (10)
    TABLESPACE TABSPC_1,
    MONTH_11 PARTITION VALUES MINUS (11)
    TABLESPACE TABSPC_1,
    MONTH_12 PARTITION VALUES LESS THAN (12)
    TABLESPACE TABSPC_1)

    ALTER TABLE TRUNCATED PARTITION MONTH_2 TEST_PARTIES2


    BMONTH is a column that contains the month number from the party created in months in the table. BMONTH = 1,2,3,4,5,6,7,8,9,10,11,12


    Select count (1) in the TEST_PARTIES2 where bmonth = 2;
    10899 lines


    Now, I'm trying to truncate the data in the partition BMONTH_2...

    ALTER TABLE TEST_PARTIES2 MONTH_2 TRUNCATED PARTITION;
    Truncated partition.

    Select count (1) in the TEST_PARTIES2 where bmonth = 2;
    10899 lines


    Please help why data are always visible, that he should have gone with truncation of partition.

    Hello

    your partitions are created with the VALUES LESS THAN. If MONTH_2 includes values< 2="" but="" not="" including="" 2.="" for="" deleting="" bmonth="2" you="" need="" to="" truncate="" partition="" month_3,="" which="" has="" a="" value="">< 3="" and="" includes="">

    Herald tiomela
    http://htendam.WordPress.com

  • Reclaim space after ALTER TABLE DROP PARTITION

    Hello

    I have a partitioned table. My requirement is to reclaim the space by dropping a partition of the table.

    Is it possibe to recover space for the tablespace by dropping a partition of partition table?

    Thank you

    Hello

    ALTER TABLE DROP PARTITION will always return the space to the storage to be reused by other segments.

    It's the ALTER TABLE TRONQUER SCORE, where you can specify DROP STORAGE or of REUSE STORAGE clause (in case of re-use, the space is not released and can be used by the new lines inserted in the same partition). The DROP STORAGE should be the default option.

    But for the fall of the score, you don't have to worry.

    Kind regards
    Martin

  • ALTER table move partition in parallel

    Hello

    I wish that this command must be run in parallel. is this possible?

    ALTER TABLE xyz PARTITION MOVE xyz_p0608 TABLESPACE q208_ts

    Thank you
    parallel_clause
    
    Purpose
    
    The parallel_clause lets you parallelize the creation of a database object and set the default degree of parallelism for subsequent queries of and DML operations on the object.
    
    You can specify the parallel_clause in the following statements:
    
        * CREATE TABLE: to set parallelism for the table (see CREATE TABLE).
        * ALTER TABLE (see ALTER TABLE):
              o To change parallelism for the table
              o To parallelize the operations of adding, coalescing, exchanging, merging, splitting, truncating, dropping, or moving a table partition
    

    To parallelize append operations, coalescence, Exchange, merger, splitting, truncate, delete or move a partition table

  • ALTER table add partition error

    Hello world

    In fact, I add more partitions in an existing table. My sql is

    ALTER table dmp_tlog1_bk add the partition by range (tmonth)
    (
    P9_200908 lower VALUES (200909) PARTITION.
    P10_200909 lower VALUES (200910) PARTITION.
    PARTITION P11_200910 lower VALUES (200911));
    commit;

    but I get the following error
    Error from the 1 in the command line:
    ALTER table dmp_tlog1_bk add the partition by range (tmonth)

    P9_200908 lower VALUES (200909) PARTITION.
    P10_200909 lower VALUES (200910) PARTITION.
    PARTITION P11_200910 lower VALUES (200911)
    Error report:
    SQL error: ORA-00902: invalid data type
    00902 00000 - "invalid data type".
    * Cause:
    * Action:
    validation succeeded.


    The data type of the tmonth is number (8.0) is the structure of the table.


    could you please help?


    Thank you very much
    alter table dmp_tlog1_bk add partition P9_200908 VALUES less than (200909)
    /
    

    SY.

  • Invalid procedure after alter table add &lt; column &gt;

    Hello Experts,

    I was faced with a situation where I add a column in a table that is used in a procedure, immediately after the addition of the new procedure associated with this table column becomes invalid.

    Can someone explain please know why this happens.

    Database version:-11.2.0.4.

    I was faced with a situation where I add a column in a table that is used in a procedure, immediately after the addition of the new procedure associated with this table column becomes invalid.

    Can someone explain please know why this happens.

    Yes - the Oracle documentation explains this. I found this doc with a simple search of "column, add the oracle 11g invalid procedure.

    http://docs.Oracle.com/CD/B28359_01/server.111/b28318/dependencies.htm#CHDJIIFC

    Table 6-2 , shows how objects are affected by changes to other objects upon which they depend.

    Table 6-2 operations affects this object status

    Operation Where the status of dependent objects

    ALTERTABLEtableADDcolumn

    INVALIDWhen:

    • Uses of the object (except a view)-dependent SELECT * on table .
    • Dependent object uses table %rowtype .
    • Dependent object performs INSERT on table without specifying a list of columns.
    • Dependent object references table in the query that contains a join in SQL.
    • Dependent object references table in the query that refers to a PL/SQL variable.

    Otherwise, no change.

    Read the WHOLE ARTICLE and see if it does not have to explain your problem.

  • ALTER table move lob segment of a partition

    How I could move a LOB from a table segment partitioned (11.1 DB)?

    I have after the table script:
    CREATE TABLE COMMON.TEST_AAA2_ARH
    (
      ID           INTEGER,
      TEKST        VARCHAR2(200 CHAR),
      UPDATESTAMP  DATE,
      OBJEKAT      CLOB
    )
    LOB (OBJEKAT) STORE AS (
      TABLESPACE COMMON_ARCHIVE
      ENABLE       STORAGE IN ROW
      CHUNK       8192
      RETENTION
      NOCACHE
      LOGGING)
    TABLESPACE COMMON_ARCHIVE
    LOGGING
    PARTITION BY RANGE (UPDATESTAMP)
    (  
      PARTITION P_201012 VALUES LESS THAN (TO_DATE(' 2011-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
        LOGGING
        NOCOMPRESS 
        TABLESPACE COMMON_DATA
        LOB (OBJEKAT) STORE AS (
          TABLESPACE USERS
          ENABLE       STORAGE IN ROW
          CHUNK       8192
          PCTVERSION  10
          NOCACHE
          LOGGING),  
      PARTITION P_201101 VALUES LESS THAN (TO_DATE(' 2011-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
        LOGGING
        NOCOMPRESS 
        TABLESPACE COMMON_DATA
        LOB (OBJEKAT) STORE AS (
          TABLESPACE USERS
          ENABLE       STORAGE IN ROW
          CHUNK       8192
          PCTVERSION  10
          NOCACHE
          LOGGING),  
      PARTITION P_MAXVALUE VALUES LESS THAN (MAXVALUE)
        LOGGING
        NOCOMPRESS 
        TABLESPACE COMMON_ARCHIVE
        LOB (OBJEKAT) STORE AS (
          TABLESPACE COMMON_ARCHIVE
          ENABLE       STORAGE IN ROW
          CHUNK       8192
          PCTVERSION  10
          NOCACHE
          LOGGING)
    )
    NOCOMPRESS 
    NOCACHE
    NOPARALLEL
    MONITORING;
    and I would switch USERS tablespace lob segment to the other...

    TNX

    ALTER table move partition lob () store as (tablespace )

    SQL> CREATE TABLE WISSEM.TEST_AAA2_ARH
    (
      ID           INTEGER,
      TEKST        VARCHAR2(200 CHAR),
      UPDATESTAMP  DATE,
      OBJEKAT      CLOB
    )
    LOB (OBJEKAT) STORE AS (
      TABLESPACE EXAMPLE
      ENABLE       STORAGE IN ROW
      CHUNK       8192
      RETENTION
      NOCACHE
      LOGGING)
    TABLESPACE EXAMPLE
    LOGGING
    PARTITION BY RANGE (UPDATESTAMP)
    (
      PARTITION P_201012 VALUES LESS THAN (TO_DATE(' 2011-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
        LOGGING
        NOCOMPRESS
        TABLESPACE EXAMPLE
        LOB (OBJEKAT) STORE AS (
          TABLESPACE USERS
          ENABLE       STORAGE IN ROW
          CHUNK       8192
          PCTVERSION  10
          NOCACHE
          LOGGING),
      PARTITION P_201101 VALUES LESS THAN (TO_DATE(' 2011-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
        LOGGING
        NOCOMPRESS
        TABLESPACE EXAMPLE
        LOB (OBJEKAT) STORE AS (
          TABLESPACE USERS
          ENABLE       STORAGE IN ROW
          CHUNK       8192
          PCTVERSION  10
          NOCACHE
          LOGGING),
      PARTITION P_MAXVALUE VALUES LESS THAN (MAXVALUE)
        LOGGING
        NOCOMPRESS
        TABLESPACE EXAMPLE
        LOB (OBJEKAT) STORE AS (
          TABLESPACE EXAMPLE
          ENABLE       STORAGE IN ROW
          CHUNK       8192
          PCTVERSION  10
          NOCACHE
          LOGGING)
    )
    NOCOMPRESS
    NOCACHE
    NOPARALLEL
    MONITORING;
      2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56
    Table created.
    
    SQL> ALTER TABLE WISSEM.TEST_AAA2_ARH MOVE LOB (OBJEKAT) STORE AS (TABLESPACE USERS);
    ALTER TABLE WISSEM.TEST_AAA2_ARH MOVE LOB (OBJEKAT) STORE AS (TABLESPACE USERS)
                       *
    ERROR at line 1:
    ORA-14511: cannot perform operation on a partitioned object
    
    SQL> ALTER TABLE WISSEM.TEST_AAA2_ARH MOVE PARTITION P_201101 LOB (OBJEKAT) STORE AS (TABLESPACE USERS);
    
    Table altered.
    
    SQL> 
    

    Published by: orawiss on May 5, 2011 14:03

  • ORA-02248: invalid option for ALTER SESSION during the connection of the customer

    Hello
    I'm a junior dba and I was hoping if someone could help me with a problem I have. I recently installed on the oracle 10g client on my windows machine. I am trying to remote connect to my database on a unix machine, but I get error trying to connect from the client below.

    ERROR:
    ORA-00604: an error has occurred at the SQL level 1 recursive
    ORA-02248: invalid option for ALTER SESSION

    I did some searching on that and I think it might be something to do with the NLS_LANG setting maybe. I do not know if and to be honest, I'm a little lost on this.

    Any help would be greatly appreciated. See you soon.

    RGS,
    Rob

    Hello

    what the SQL you gave?

    Check the run-> regedit NLS_LANG parameter and change it according to env

  • NOLOGGING in alter table split partition...

    Hi all

    Please can tell me where I would add the NOLOGGING in the below statement, or any other means by which I can stop to redo being generated

    ALTER table split partition EB_LOGS_082008 at (to_date('01-01-2010','DD-MM-YYYY')) NOLOGGING EB_LOGS into (partition EBLAST_TABLE, partition EB_LOGS_012010 tablespace EBLAST_TABLE tablespace EB_LOGS_082008) parallel;

    Wow... Grammar ALTER TABLE just constantly more and more complex, isn't?

    According to this:
    http://download.Oracle.com/docs/CD/E11882_01/server.112/e10592/clauses005.htm#CJAHABGF

    "For partitioned objects, the value specified for this clause is the physical attribute by default segments (and ALTER following... associated with all the partitions specified in the CREATE statement ADD PARTITION statements), unless you specify the logging attribute in the description of the PARTITION. »

    If I read that correctly, so if you want the NOLOGGING keyword to indicate more than just the physical default attribute, then it must be in the description of the PARTITION.

    So something like this, perhaps?
    Totally not tested, BTW:
    ALTER table EB_LOGS split partition EB_LOGS_082008 at (to_date('01-01-2010','DD-MM-YYYY')) into (partition EB_LOGS_082008 tablespace EBLAST_TABLE nologging, partition EB_LOGS_012010 tablespace EBLAST_TABLE nologging) parallel;

    Once again, this is an assumption and cannot yet pass the analysis.

    In regards to the perceived dangers of NOLOGGING operations, well, it is certainly something that must be clearly understood, but not to fear. The disadvantage of an operation NOLOGGING is that if you need to recover from a backup taken before the NOLOGGING operation, until a point in time after the operation NOLOGGING objects in the database that were submitted to NOLOGGING operations will logically corrupted and must be rebuilt.

    Finally, I fell on this can also be useful, regarding the optimization of SPLIT PARTITION operations:
    http://download.Oracle.com/docs/CD/E11882_01/server.112/e10837/part_admin.htm#VLDBG00304

    Hope that helps,

    -Mark

  • ALTER TABLE hf_altertest ADD COLUMN does not

    I am using ORACLE 11g and my FDI is Developer SQL 4.1.1

    It's all free PC version that has limits.

    I tried on:

    CREATE TABLE hf_altertest

    (

    contact_id INTEGER NOT NULL

    , name VARCHAR (25)

    , last_name VARCHAR (35)

    PRIMARY KEY (contact_id)

    );

    ALTER TABLE hf_altertest State to add a CHAR (2) COLUMN;

    But when I go to run the ALTER TABLE statement then I get following error:

    rror starting at line: 1 323 in command.

    ALTER TABLE hf_altertest State to add a CHAR (2) COLUMN

    Error report-

    SQL error: ORA-00904: invalid identifier

    00904, 00000 - '% s: invalid identifier '.

    * Cause:

    * Action:

    I can run the same code in MySQL without error.

    This leads me to think that maybe I'm just bumping into a limit in the free version of PC.

    Any thoughts?

    3003916 wrote:

    I am using ORACLE 11g and my FDI is Developer SQL 4.1.1

    It's all free PC version that has limits.

    ALTER TABLE hf_altertest State to add a CHAR (2) COLUMN;

    But when I go to run the ALTER TABLE statement then I get following error:

    rror starting at line: 1 323 in command.

    ALTER TABLE hf_altertest State to add a CHAR (2) COLUMN

    Error report-

    SQL error: ORA-00904: invalid identifier

    00904, 00000 - '% s: invalid identifier '.

    * Cause:

    * Action:

    I can run the same code in MySQL without error.

    This leads me to think that maybe I'm just bumping into a limit in the free version of PC.

    Any thoughts?

    There is no LIMIT to the 'free' version  If you read the error message he said THAT was not a valid identifier.  Just to show you that I tried your erroneous statement

    ALTER TABLE hf_altertest ADD COLUMN state2 CHAR(2);
    

    and here is the indicator error message in SQL +.

    SQL * more: Production of liberation 12.1.0.2.0 Tue Oct 15 14:34:57 2015

    Copyright (c) 1982, 2014, Oracle.  All rights reserved.

    Connected to:

    Oracle Database 11 g Enterprise Edition Release 11.2.0.4.0 - 64 bit Production

    With the partitioning, Real Application Clusters, Automatic Storage Management, OLAP

    and Data Mining options

    Add a COLUMN state2 TANK (2)

    *

    ERROR on line 2:

    ORA-00904: invalid identifier

    As you can see (and as the previous poster of response indicates), the 'COLUMN' KEYWORD is not necessary when adding new columns.  Only when 'RENAME' is used, then you add the keyword COLUMN.

    See the documentation for the syntax of ALTER TABLE here--> http://docs.oracle.com/database/121/SQLRF/statements_3001.htm#SQLRF01001

    See specific clause RENAME syntax here--> http://docs.oracle.com/database/121/SQLRF/statements_3001.htm#i2183480

  • Problem with trunacating the partitions of a table.

    Hi all

    I have a table partitioned, called temp1_list_cmpgn_hist_dtl, and it is partitioned by month (campaign_start_date).

    I tried, queries
    TRUNCATE TABLE temp1_list_cmpgn_hist_dtl PARTITION t_list_cmpgn_201006
    TRUNCATE TABLE temp1_list_cmpgn_hist_dtl PARTITION t_list_cmpgn_201006 REUSE STORAGE

    but it throws me the following error message:
    SQL error: ORA-03291: Invalid truncate option - missing keyword STORAGE
    03291 00000 - "invalid truncate option - missing keyword STORAGE"
    * Cause: Keyword STORAGE planned
    * Action: Specify DROP STORAGE or reuse STORAGE

    Also, I'll try to find the nom_partition for the 'temp1_list_cmpgn_hist_dtl' table, but it shows not all partitions, although there are partitions.
    I tried the query,
    SELECT Nom_partition from user_tab_partitions WHERE table_name = 'temp1_list_cmpgn_hist_dtl '.

    THX,
    Rod.

    You cannot truncate individual partitions of a table. The closest you could come would be to do a swap partition with an empty table created to match your partition.

    Also, I'll try to find the nom_partition for the 'temp1_list_cmpgn_hist_dtl' table, but it shows not all partitions, although there are partitions.
    I tried the query,
    SELECT Nom_partition from user_tab_partitions WHERE table_name = 'temp1_list_cmpgn_hist_dtl '.

    All the names of objects in the Oracle database, by default, are stored in uppercase letters, so make sure the upper case of the table name.

    John

Maybe you are looking for