Change Dataype in existing Table

Hi,
I need to change the dataype from
varchar2( 10 Byte) to varchar2( 15 char) of 10 columns . These 10 column are suppose to store data with special character.What would be the effect on existing data.
Thankyou
Shweta
Edited by: 984137 on Jan 25, 2013 3:55 AM
Edited by: 984137 on Jan 25, 2013 3:56 AM

SQL> desc test1;
Nombre                                    ┐Nulo?   Tipo
OBJECT_NAME                               NOT NULL VARCHAR2(30)
OBJECT_ID                                 NOT NULL VARCHAR2(20)
SQL> alter table test1 modify object_name char(50);
Tabla modificada.
SQL> desc test1;
Nombre                                    ┐Nulo?   Tipo
OBJECT_NAME                               NOT NULL CHAR(50)
OBJECT_ID                                 NOT NULL VARCHAR2(20)
SQL>

Similar Messages

  • Changes in the existing table structure

    Dear All,
    I have table called X and having some rows. I want to add another column with not null and add primary key. But I have to do care of existing data and database is in production?
    Thanks

    SQL> create table myt1 (x int not null);
    Table created.
    SQL> insert into myt1 values(1);
    1 row created.
    SQL> alter table myt1 add (y int);
    Table altered.
    SQL> update myt1 set y=1;
    1 row updated.
    SQL> alter table myt1 modify (y not null);
    Table altered.
    SQL> desc myt1
    Name Null? Type
    X NOT NULL NUMBER(38)
    Y NOT NULL NUMBER(38)
    Edited by: Robert Geier on Nov 12, 2009 10:33 AM

  • Best way to change partition key on existing table

    Hi,
    Using Oracle 11.20.3 on AIX.
    We have a table about 800 million rows and 120gb in size.
    Want to try copies oif this table to evalaute different partitiong strategies.
    What is the quickest way to do this?
    Would have liked say datapump table 1 tro disk and datapumo import the data to new table but do the tables need to be of the same format.
    Thanks

    >
    Using Oracle 11.20.3 on AIX.
    We have a table about 800 million rows and 120gb in size.
    Want to try copies oif this table to evalaute different partitiong strategies.
    What is the quickest way to do this?
    Would have liked say datapump table 1 tro disk and datapumo import the data to new table but do the tables need to be of the same format.
    >
    First your subject asks a different question that the text you posted: Best way to change partition key on existing table. The answer to that question is YOU CAN'T. All data has to be moved to change the partition key since each partition/subpartition is in its own segment. You either create a new table or use DBMS_REDEFINITION to redefine the table online.
    Why do you want to export all data to a file first? That just adds to the time and cost of doing the op.
    What problem are you trying to use partitioning to solve? Performance? Data maintenance? For performance the appropriate partitioning key and whether to use subpartitions depends on the types of queries and the query predicates you typically use as well as the columns that may be suitable for partition keys.
    For maintenance a common method is to partition on a date by year/month/day so you can more easily load new daily/weekly/monthly data into its own partition or drop old data that no longer needs to be kept online.
    You should use a small subset of the data when testing your partitionings strategies.
    Can you do the partitioning offline in an outage window? If not then using the DBMS_REDEFINITION is your only option.
    Without knowing what you are trying to accomplish only general advice can be given. You even mentioned that you might want to use a different set of columns than the curren table has.
    A standard heap table uses ONE segment for its data (ignoring possible LOB segments). A partitioned/subpartitioned table uses ONE segment for each partition/subpartition. This means that ALL data must be moved to partition the table (unless you are only creating one partition).
    This means that every partitioning scheme that uses a different partition key requires ALL data to be moved again for that test.
    Provide some information about what problem you are trying to solve.
    >
    Is this quicker than datapump?
    >
    Yes - exporting the data simplying moves it all an additional time. Ok to export if you need a backup before you start.
    >
    Found artcle which talks about using merge option on datapump import to convert partitioned table to non-partitioned table.
    >
    How would that apply to you? That isn't what you said you wanted to do.

  • Oracle partitioning - change in existing tables

    I recently started working with legacy code and noticed that some huge tables (5 years worth of data, don't have more details on me right now but can post later if needed) are partitioned based on time sequence number column while majority of queries are done based on time (different column). Queries performance is degrading over time and I'd like to try to modify partitioning and run some tests to see if there is a performance improvement.
    My only concern is this is a lot of data and they are all live, so I have to come up with some sort of solution on how to switch partitioning with the least impact on applications running 24 x 7.
    Can someone suggest a viable solution? Something you have done in the same situation and it worked?
    If there is a certain technique on how to do it, please give me search keywords and I will google the rest.
    Thanks,
    S.

    You can't change the partitioning of an existing table.
    You can, however, use the DBMS_REDEFINITION package to do an online redefinition. Behind the scenes, what you're really doing is
    - Creating a new table with the new partitioning scheme
    - Copying the data from the old table to the new table
    - Dropping the old table
    - Renaming the new table to the name used by the old table
    Now, if the large table is only being queried, not updated (or at least you have a window where it is read-only), it's probably easier to just do these steps manually rather than using DBMS_REDEFINITION where you at least have finer grained control over the steps. You'll still need a moment where the table is inaccessible to do the actual rename.
    Justin

  • How can I convert an existing table to IOT

    Hi,
    My Oracle version is 10.2.0.4
    Below is my structure of my test_table .
    It has 1141580 rows.
    I want to convert this into index Organized table. It has no secondary indexes.
    How can I convert an existing table to IOT.
    CREATE TABLE test_table (
       Column1             NUMBER        NOT NULL,
       Column2             DATE          NOT NULL,
       Column3             VARCHAR2(100) NOT NULL,
       Column4             VARCHAR2(8)   NULL,
       Column5             VARCHAR2(40)  NOT NULL,
       Column6             VARCHAR2(3)   NULL,
       Column7             NUMBER        NOT NULL,
       Column8             NUMBER        NULL,
       Column9             VARCHAR2(32)  NULL,
    ALTER TABLE test_table
      ADD CONSTRAINT test_table_pk2 PRIMARY KEY (
        Column1,
        Column2
      USING INDEX
        STORAGE (
          INITIAL   30720 K
    ALTER TABLE test_table
      ADD CONSTRAINT test_table_cons1 FOREIGN KEY (
        Column1
      ) REFERENCES test_table2 (
        Column1
    /

    alter table doesn't allow to change the organization of a table.
    So the logical answer to your question is
    You can not
    and your question
    redundant.
    As most other questions here.
    So the answer should have been
    - create a new table
    - insert all rows
    - drop the old table
    - rename the new table
    Oracle is not about rocket science.
    Oracle is about reading documentation and using brains.
    If you do that, maybe, one day, you will be a bigboy.
    If you keep asking redundant questions you will remain a littleboy.
    Sybrand Bakker
    Senior Oracle DBA

  • How to add a new data element for existing table filed(Primary key field)

    Hi Experts,
    How to add a new data element for existing table field(Primary key field)
    For this filed ther is no foreign key relation ships and even check table.
    while activating table it is giving message like below.
    can you help any one to solve this and wil steps to add new dataelement for existing primary key filed of a table.
    Check table (NAMING SPACE/TABLE NAME(EX:/TC/VENDOR)) (username/19.02.10/03:29)           
    Primary key change not permitted for value table /TC/VENDOR
    Check on table  /TC/VENDOR resulted in errors              
    Thanks
    Ravi

    Hi,
    Easiest way is to download the table eg into an Excel table (if possible) or text table. Drop the table from the database. Build your table with the new key field. Build the database table again and fill it.
    You can do it also over the database into a new table. Drop the old one. Build the enhanced one and fill it. Afterwards drop your (temporary) table.
    Maybe there are other ways, but this works.
    Success,
    Rob

  • Approaches to transfer changed data from a table to another table

    Hello expert,
    will you please show me all approaches to automatically detect and transfer changed data from a table to another table ? I don't need detail information, but a little comment for those approaches are more welcome.
    Many Thanks,
    Edited by: 843178 on 19-Dec-2011 2:04 PM

    You will want to review information on replication and similar methods
    In a nutshell:
    Replication allowed data to exist at more than one site and take the Master / original table data and clone it at a different site
    As tranporting all of the table data to a remote / clone site got more and more expensive we developed a method
    to identify just the 'diffs' and only send those from the master to the clone which needed only the diffs to become a clone of the master table
    This has many methods and options, but looking under key words such as
    - distributed transations
    - materialized views
    - replication
    ... are a few categories that will get you started

  • Add a new field to existing Table

    Hi , We want to add a new field to existing table from ECC  and populate historical data .
    We have already extracted data from ECC to VBAK Table . We have to add a new field - Incoterms in HANA . This field exists in ECC .
    Please guide.

    Hi Vicky,
        I dont think you can add new fields to the condition table once you have activated the condition table.
    SAP says you can only make limited changes to the condition table, like changing the description, fast entry screen, header and footer fields, but not able to add new fields to the table, and I think that is the correct approch or else for the same table you will have two sets of condition records.
    Please refer to the below link:
    http://help.sap.com/saphelp_erp60_sp/helpdata/en/de/7a8534c960a134e10000009b38f83b/frameset.htm
    What you can do is create a new condition table with additional field and assign this table before the currently used table in the access sequence.
    Hope this helps.
    Regards
    Raj

  • How to insert columns in an existing table?

    iv read the tutorial in this site http://www.w3schools.com/sql/sql_alter.asp but it is not for SQL Server 2000 DB.
    Im using SQL Server 2000 DB. how do i insert column in an existing table?
    i tried to execute the code (String query) below but it doesn't wrk:
    For data type char:
    String query = "ALTER TABLE [dbo].["+tablename+"] ADD [columnname] [char] (60) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL";
    For data type int:
    String query = "ALTER TABLE [dbo].["+tablename+"] ADD [columnname] [int] NOT NULL";________________________
    is what's wrong with the code?

    Best solution would be to look up the exact syntax from the SQL Server 2000 documentation. The tutorial you have there teaches the ANSI Standard SQL. It is surprising that SQL Server 2000 (Microsoft right?) doesn't comply with that (especially since they list it in as one of the ones the tutroial was made to demonstrate).
    I would double and triple check your sintax, whatch your error logs to make sure something else isn't preventing you from changing, and making sure you are logged in to the DB as a user who has the ability to alter tables.

  • Table Catalog has no effect on existing table

    We are using FrameMaker 11 in a Windows 7 environment.
    This is what happens.
    1. We go into our chapter template and verify that "Table A" is formatted exactly how we want it.
    a. The table has a heading row.
    b. The heading row is shaded light blue.
    c. The heading row has a medium border on top and bottom.
    d. The heading row has text in is that is set to a Table Heading paragraph style.
    e. The table's last row has a bottom ruling of medium.
    f. All ruling in the table is set to a shade of blue.
    2. We save the chapter template.
    3. We open a book's chapter.
    4. We apply the table formatting from the chapter template to the book chapter.
    5. We find a table that was made without a heading row, but the top row was formatted to resemble the heading row in appearance. The table also has black ruling.
    6. We block the entire existing table.
    7. We click on "Table A" in the table catalog.
    Expected behavior: The existing table takes on the exact formatting of "Table A" (the six points mentioned above under #1).
    Actual behavior: Nothing happens.
    We have to manually exchange the top row for a real heading row, fiddle with applying ruling information from Customer Ruling and Shading, and so forth.
    Are we doing something incorrectly?
    Thanks in advance.
    Tim

    >> d. The heading row has text in is that is set to a Table Heading paragraph style.
    > Use the Custom Cell Ruling and Shading to strip the overrides off of the table.
    That, alas, won't affect the paragraph formats used in existing tables, unless FM behavior has changed from the FM7 I run at home. I just tried it.
    The Table Designer really needs a new tab for default para formats, as it is obviously keeping a template structure somewhere for new tables, which DO get the revised formats. Another item for the FM14.3 wishlist, I suppose.

  • Oracle 11g imp erroneously tries to recreate existing tables with CLOBs?

    I have a shell script for loading database dumps from both Datapump and the older exp/imp.
    Often when loading dumps, I need to rename the schema owner and tablespace names (which is handled by REMAP_SCHEMA and REMAP_TABLESPACE in Datapump).
    However I have a whole bunch of dumps created with exp at this point and not that many Datapump dumps yet. As such the old style dumps are handled by the shell script in this way:
    1) A first pass imp is run using INDEXFILE to generate a file with the SQL to create tables and indexes. Options also include FROMUSER and TOUSER.
    2) A series of sed command edit the SQL file to change the tablespace names (which are schema owner specific in our case).
    3) The editted SQL file is run with sqlplus to create the tables and indexes.
    4) A second pass imp is run to load the table rows as well as triggers, stored procedures, views, etc. Options include FROMUSER, TOUSER, COMMIT=Y, IGNORE=Y, BUFFER, STATISTICS=NONE, CONSTRAINTS=N
    This shell script has been working great for loading exp dump files into Oracle 9 and Oracle 10 databases, but now that I'm trying to load these dumps into Oracle 11, it fails.
    The problem is in step 4, the imp program is trying to create some of the tables that already were created with sqlplus in step 2. The problematic tables all seem to have CLOB columns in them. The table creation fails because it tries to use the tablespace names from the dump file, which do not exist in the destination database. And when the table creation fails, imp then decides not to load the rows for those table.
    This seems like a bug in the Oracle 11 imp program. I don't understand why it thinks it needs to recreate tables that already exist when those tables have CLOB columns. Is there something different about CLOB columns in Oracle 11 that I should know about that might be confusing imp into thinking that it needs to create tables when they already exist? Maybe I need to do something to those tables in SQL so that imp does not think it needs to recreate them?
    I know that the tables with the CLOBs were created correctly because I was trying to find some way to workaround this. For step 4, I tried using DATA_ONLY=Y, in which case imp does not try to create the tables and just loads the table rows. Of course using DATA_ONLY, I don't get a lot of other things like triggers, view and stored procedures. I started to try to get around that by doing 3 passes with imp, so that I could pick up the missing pieces by using an imp pass with ROWS=N, but strangely that has the same problem of trying to recreate the existing tables.

    The only solution I've found so far as a workaround is rather convoluted.
    1. I took an export using datapump's expdp of SCHEMA1 (in 10g it will skip the table with the xmltype).
    2. I imported the data to my empty schema (SCHEMA2) using impdp. To avoid the error that the type already exists with another OID, I used the TRANSFORM=oid:n parameter e.g.
    impdp user/pwd dumpfile=noxmltable.dmp logfile=importallbutxmltable.log remap_schema=SCHEMA1:SCHEMA2 TRANSFORM=oid:n directory=MYDUMPDIR
    3. I then manually created my xmltype table in the SCHEMA2 and did a select into to load it (make sure you have the select privileges to do so):
    INSERT INTO SCHEMA2.XMLTABLE2 SELECT * FROM SCHEMA1.XMLTABLE1;
    4. I am still taking an export with exp of the xmltable as well even though I'm not sure I can do anything with it.
    Thanks!
    Edited by: stacyz on Jul 28, 2009 9:49 AM

  • How can I create index(uniqie index) for a existed table?

    Hi guys,
    I want to create a index for a existed table, it should be unique index. I did it using se11, "indexes," and select the radio button "unqiue index", of course the fields as well. But when I activate it, I get a waring and therefore can not create this index. But if I select radio button "non-uniqe index", it works.
    However I have to reate a unqiue index.
    How can I do it?
    Thanks in advance
    Regards,
    Liying

    HI Wang
    You can create your index via SE11, enter the table name, click change, choose Go To, Indexes. Here create your index with the key fields that you want. To use the index, your select statement WHERE clause, you must have the key fields of the index in the order that they appear in the index. The "optimizer" will choose the index depending on your fields of the WHERE clause.
    One thing to remember is that when you create indexes for tables, the update or insert of these tables may have a slower response then before, I for one have never seen a big problem as of yet.
    this Document may help u on primary and secondary indexes :
    http://jdc.joy.com/helpdata/EN/cf/21eb20446011d189700000e8322d00/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/cf/21eb47446011d189700000e8322d00/content.htm
    If it helps Reward the points
    Regards,
    Rk
    Message was edited by:
            Rk Pasupuleti

  • Add column to user defined type based on existing table

    Hello guys,
    I am trying to compile my function which returns a user defined type based on existing table. Throughout the initializing process though my query returns one additional column - SCORE(1). Here is my package:
    create or replace
    PACKAGE STAFF_AGENCY_PKG AS
    TYPE TYPE_SEEKER_TABLE IS TABLE OF TOSS.SEEKER%ROWTYPE;
    FUNCTION GET_SEEKERS(IN_KEYWORD IN VARCHAR2)
    RETURN TYPE_SEEKER_TABLE PIPELINED;
    END STAFF_AGENCY_PKG;
    create or replace
    PACKAGE BODY STAFF_AGENCY_PKG
    AS
    FUNCTION GET_SEEKERS(IN_KEYWORD IN VARCHAR2)
    RETURN TYPE_SEEKER_TABLE PIPELINED
    IS
    R_TBL TYPE_SEEKER_TABLE; -- to be returned
    BEGIN
    FOR R IN(
    SELECT Seeker.SEEKER_ID,
    Seeker.FIRSTNAME,
    Seeker.LASTNAME,
    Seeker.NATIONALITY,
    Seeker.ISELIGIBLE,
    Seeker.BIRTHDATE,
    Seeker.ISRECIEVEEMAILS,
    Seeker.HIGHESTDEGREE,
    Seeker.ETHNICITY,
    Seeker.GENDER,
    Seeker.ISDISABILITY,
    Seeker.DISABILITY,
    Seeker.CV,
    Seeker.PASSWORD,
    Seeker.PREFFERED_CITY,
    SEEKER.EMAIL,
    SEEKER.JOB_PREFERENCES_ID,
    SCORE(1)
    FROM SEEKER Seeker
    WHERE CONTAINS(CV, '<query>
    <textquery lang="ENGLISH" grammar="context">' ||
    GET_RELATED_CATEGORIES(IN_KEYWORD) ||
    '</textquery>
    <score datatype="INTEGER"/>
    </query>', 1) > 0
    LOOP
    PIPE ROW(R); --Error(38,10): PLS-00382: expression is of wrong type
    END LOOP;
    RETURN;
    END GET_SEEKERS;
    END STAFF_AGENCY_PKG;
    How do I need to amend my user type in order to suffice?
    Oracle Release 11.2.0.1.0
    Many thanks in advance!

    >
    How do I need to amend my user type in order to suffice?
    >
    You will need to create two new TYPEs. One that has all of the columns of the TOSS.SEEKER table and the new SCORE column and then a TYPE that is a table of the first type.
    See the Example 12-22 Using a Pipelined Table Function For a Transformation in the PL/SQl language reference
    http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/tuning.htm#i53120
    Here is the first part
    -- Define the ref cursor types and function
    CREATE OR REPLACE PACKAGE refcur_pkg IS
      TYPE refcur_t IS REF CURSOR RETURN employees%ROWTYPE;
      TYPE outrec_typ IS RECORD (
        var_num    NUMBER(6),
        var_char1  VARCHAR2(30),
        var_char2  VARCHAR2(30));
      TYPE outrecset IS TABLE OF outrec_typ;
    FUNCTION f_trans(p refcur_t)
          RETURN outrecset PIPELINED;
    END refcur_pkg;
    CREATE OR REPLACE PACKAGE BODY refcur_pkg IS
      FUNCTION f_trans(p refcur_t)
       RETURN outrecset PIPELINED IS
        out_rec outrec_typ;
        in_rec  p%ROWTYPE;
      BEGINModify
      TYPE outrec_typ IS RECORD (
        var_num    NUMBER(6),
        var_char1  VARCHAR2(30),
        var_char2  VARCHAR2(30));
      TYPE outrecset IS TABLE OF outrec_typ;to include all of the columns you need. Unfortunately you will have to manually list all of the columns of the TOSS.SEEKER table. If you expect to need this same structure in other places you should create them as SQL types instead of PL/SQL types.
    This example should be enough to show you how to change your code to do something similar.

  • How to update existing table using Data Load from spreadsheet option?

    Hi there,
    I need to update an existing table, but in Data Load application when you select csv file to upload it inserts all data by replacing existing one. How can i change this?
    Let me know,
    Thank you.
    A.B.A.

    And how do you expect your database server to access a local file in your machine ?
    Is the file accessible from outside your machine say inside a webserver folder so that some DB process can poll on the file ?
    Or, is your DB server in the same machine where you have the text file ?
    You will have to figure out the file acess part before automating user interaction or even auto-refreshing.

  • Changing Decimal places in table TCURX

    Hi There
    We have a business requirement to change the decimal places in table TCURX from 3 Decimals to 5 Decimal places. No previous postings have been made in foreign currencies.
    If no transaction data has been posted in foreign currencies yet, will this have an impact?
    What will the impact be?
    Regards

    Hi,
    Refer to this SAP text:
    In the R/3 System tables currency fields are stored as decimal figures with a variable number of decimal places. The decimal point is not stored in the field in the database. Instead, each currency field refers to a currency key field. In this transaction you assign the number of decimal places to this currency key uniquely. Example: If you have set currency USD to have two decimal places and you post an amount of 100 USD, an amount of 10000 USD is stored in the currency field in the database. Not until this
    amount is processed further or is output does the system use the currency key from the reference field to determine the number of decimal places via this table. In this way the table content can be interpreted correctly for further processing or formatted for output with the correct punctuation. If after posting you changed the number of decimal places for USD, for example, to 3, the existing field content of 10000 would be interpreted for futher processing or output as 10 USD (10.000). This would mean that the contents of tables across the system would, for all currency fields containing an amount in USD,
    be interpreted incorrectly by 10 per cent. To change the number of decimal places for a currency already in use, you must convert all the tables in the R/3 System that contain currency fields, so that the data integrity remains. This cannot, however, for both organizational reasons and under the runtime
    aspect be carried out in a productive system. The following changes to the TCURX table can
    thus lead to the loss of data integrity if you make the changes in a productive system or transport them into a productive system:
    o Change to the number of decimal places of an existing currency
    o Deletion of an entry from the TCURX table (corresponds to changing the decimal places to the standard value of two decimal places)
    o Insertion of an entry in the TCURX (corresponds to changing the standard value of
    2 decimal places to a different value), if this is a currency code that already exists
    Uncritical changes are any made to this table during the Customizing of a new installation or the insertion of TCURX even during operations, if the currency codes have just been entered in the TCURC table using transaction OY03, signifying that no postings to these currency codes can have been carried out yet.
    Regards,
    Eli

Maybe you are looking for

  • How can I let breeders update their sale pages on their own?

    I am using GoLive CS and currently have interest in a site design from a few different animal breeders. I have already built and currently maintain a site for one breeder who lists her for-sale animals online, and I update the list whenever she needs

  • How to program for multiple tasks at the same time.

    I want to start a data acq, then detect a level change in a switch which also corresponds to a visible timer starting. The timer will stop when one of three switches is closed. In the middle of this I would like for there to be a selectable (controll

  • Updating a JScrollPane

    Hi, I've a big problem with a JScrollPane. I have a JScrollPane and in it there is a JPanel with a BorderLayout divided in NORTH and CENTER. In the NORHT and CENTER there are other two JPanel. The problem is that I need to add buttons and label to th

  • How to create an user input variable in SEM-BPS?

    Hi, anyone please guide me how to create an user input variable in SEM-BPS? I want to utilized user input variable to udpate characteristic with repost function. I tried to create in planning folder, variables right-click create, but the system said

  • Ai CS6 causing Ai CS5 to crash (win7)

    Installed CS6 and now illustrator CS5 crashes, will open but crashes (Adobe Illustrator CS5 has stopped working) after a couple of seconds, Google searched the problem and tried the MAC fix of opening CS6 first then opening CS5 with 6 still running (