Oracle insert querry.

Hi all oracle gurus
I am trying to insert a value which is difference between two dates, for that reason i am doing (" rec_jag_promos.end_date -rec_jag_promos.start_date") inside my insert statement.
but it is not working. my plsql code is running but not giving me any o/p.
Here what i am trying to do is i want to insert DAYS value into my table which is between start date and end date.
........its not working . please guide me or correct me.
Below is part of my querry ........
Thanks
-- migrate data
FOR rec_jag_promos IN cur_jag_promos
LOOP
v_jag_count := v_jag_count + 1;
BEGIN
v_wots_hot_id := rec_jag_promos.promotion_id;
-- this call will throw and exception 0 or many regions found
v_region_id := get_region_id( rec_jag_promos.promotion_id, rec_jag_promos.region_display_type );
INSERT INTO wotif_promo.WOTS_HOT
( id, country_code,
start_date, end_date,inventory_source_id,hotel_id,
rate_plan_code,region_id,blurb, modified_username,
version,DAYS_ACTIVE )
VALUES
( v_wots_hot_id, rec_jag_promos.country_code,
rec_jag_promos.start_date, rec_jag_promos.end_date,v_inv_source_id,rec_jag_promos.hotel_id,
rec_jag_promos.rate_plan_code, v_region_id, rec_jag_promos.blurb, rec_jag_promos.modified_username,
1, rec_jag_promos.end_date-rec_jag_promos.start_date+);
v_wots_hot_inserts := v_wots_hot_inserts + 1;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE( 'WOTS_HOT Insert Error on wots_hot_id : ' || rec_jag_promos.wots_hot_id );
DBMS_OUTPUT.PUT_LINE( SQLCODE || ' ' || SQLERRM );
v_wots_hot_errs := v_wots_hot_errs + 1;
END;

You probably have posted to the wrong forum. Please use the appropriate forum (I assume you would like to post in PLSQL), this is the Beehive forum.

Similar Messages

  • Oracle insert transaction - what process reads free blocks?

    Hello,
    I have before me the Oracle insert process described as:
    1. Read the data from the data file
    2. Read a block from the rollback segment
    3. Write redo information that specifies the change to the rollback block
    4. Copy the old data block value to the rollback data block
    5. Write redo information concerning the changes to the table data block
    6. Change the table data block
    At steps 1 and 2 is the reading done by the shadow process (I guess it has to be the shadow process, but can someone please confirm).
    Kind regards,
    Peter

    Hi,
    IMHO,
    There is a difference between "trying to understand" questions and "give me the solution" questions.
    You are following some slides and you do not understand something. That is normal, nobody knows all. Doubts appear. You "research" and you do not find the solution or do not understand it. Use the forum, it is here for that. Perhaps the answer is on the manual, note ... and someone will point it to that.
    Unfortunately, there are other "users" that do not bother trying to find the solution, read the manual ... They have a problem and <i>demand </i>an answer immediately, or they have a job interview in 1/2 hour and they try to "find" the answer without any effort.
    The answer could be the same as in the previous case, but perhaps it is not so useful.

  • Oracle 11g: Oracle insert/update operation is taking more time.

    Hello All,
    In Oracle 11g (Windows 2008 32 bit environment) we are facing following issue.
    1) We are inserting/updating data on some tables (4-5 tables and we are firing query with very high rate).
    2) After sometime (say 15 days with same load) we are feeling that the Oracle operation (insert/update) is taking more time.
    Query1: How to find actually oracle is taking more time in insert/updates operation.
    Query2: How to rectify the problem.
    We are having multithread environment.
    Thanks
    With Regards
    Hemant.

    Liron Amitzi wrote:
    Hi Nicolas,
    Just a short explanation:
    If you have a table with 1 column (let's say a number). The table is empty and you have an index on the column.
    When you insert a row, the value of the column will be inserted to the index. To insert 1 value to an index with 10 values in it will be fast. It will take longer to insert 1 value to an index with 1 million values in it.
    My second example was if I take the same table and let's say I insert 10 rows and delete the previous 10 from the table. I always have 10 rows in the table so the index should be small. But this is not correct. If I insert values 1-10 and then delete 1-10 and insert 11-20, then delete 11-20 and insert 21-30 and so on, because the index is sorted, where 1-10 were stored I'll now have empty spots. Oracle will not fill them up. So the index will become larger and larger as I insert more rows (even though I delete the old ones).
    The solution here is simply revuild the index once in a while.
    Hope it is clear.
    Liron Amitzi
    Senior DBA consultant
    [www.dbsnaps.com]
    [www.orbiumsoftware.com]Hmmm, index space not reused ? Index rebuild once a while ? That was what I understood from your previous post, but nothing is less sure.
    This is a misconception of how indexes are working.
    I would suggest the reading of the following interasting doc, they are a lot of nice examples (including index space reuse) to understand, and in conclusion :
    http://richardfoote.files.wordpress.com/2007/12/index-internals-rebuilding-the-truth.pdf
    "+Index Rebuild Summary+
    +•*The vast majority of indexes do not require rebuilding*+
    +•Oracle B-tree indexes can become “unbalanced” and need to be rebuilt is a myth+
    +•*Deleted space in an index is “deadwood” and over time requires the index to be rebuilt is a myth*+
    +•If an index reaches “x” number of levels, it becomes inefficient and requires the index to be rebuilt is a myth+
    +•If an index has a poor clustering factor, the index needs to be rebuilt is a myth+
    +•To improve performance, indexes need to be regularly rebuilt is a myth+"
    Good reading,
    Nicolas.

  • Oracle insert problem(records not in the order they are inserted)

    hi, all:
    I tried to insert a word list into a oracle table, everything is fine except that the words are not in the order they are inserted. For example, the words are inserted in the following sequence:
    accreted     
    accreting     
    accretion     
    accretionary     
    accretive     
    bladebone
    bladed     
    bladeless
    bladelike
    When I retrived the resultset from the table and iterate through each of the record, the words are not in the order inserted, i.e., it may look like this,
    accreted     
    accreting     
    bladebone
    bladed     
    accretion     
    accretionary     
    accretive     
    bladeless
    bladelike
    This strange phenomenon won't happen when the word list is small, like 500 words or so, but when the number of words reaches around 10,000, it takes place. My coworker also experienced this problem when trying to insert large volume of data into oracle table.
    The code I used to insert into the DB table:
    BufferedReader reader=new BufferedReader(new FileReader("C:\\Dictionary.txt"));
    while( (line=reader.readLine())!=null )
         sql="INSERT INTO DICT " +
         "VALUES ('" + line +"')";                         
         statement.executeUpdate(sql);
    Any advice will be highly appreciated,
    thanks

    Well, the best thing to do is follows scsi-boy's advice and add the additional column and either put a sequence number in it from the Java side as you insert, or use an Oracle sequence object to put a sequence number in it from the Oracle side (which is sort of like an auto-generated value, but different).
    Note that an Oracle sequence generates numbers in sequence, but possibly with gaps (usually if the database is rebooted), unless you do some things that slow sequences down substantially. Sequences can also be something of a bottleneck on RAC clusters. See:
    http://www.dizwell.com/oracle/articles/autonumbering.html
    However, if your coworker is commiting after each and every insert (which is bad form and slows the database down, -10 points), and if your coworker is also never ever ever updating the columns after they've been inserted, and if your coworker is using Oracle 10g and not some older version such as 9i, then your coworker could use the ORA_ROWSCN pseudo-column to order by. Those are very very severe constraints and you shouldn't begin to consider doing it that way without a very good reason, and right now you and your coworker wouldn't know a good reason if it snuck up and bit you on the butt, you've got a lot of learning the basics first.

  • Oracle Insert Query

    i am writing a Oracle query in which i am inserting a row and the datatypes of columns are String , Integer and Date .
    i am fetching values from JTable cell entered by the user .
    ny suggestions ?
    .

    Himanshu_Walia wrote:
    i am writing a Oracle query in which i am inserting a row and the datatypes of columns are String , Integer and Date .
    i am fetching values from JTable cell entered by the user .
    ny suggestions ?
    1. Create a design
    2. Implement the design in code.
    3. Test the code.

  • Oracle insert speed (92k records)

    I am inserting 92,000 records into oracle (nightly job)
    I am just trying to speed things up (is my first C#/Oracle app)
    at the moment, I have 2 ways of inserting the records
    using Oracle.DataAccess.Client;
    using Oracle.DataAccess.Types;
    1) command.CommandText = "INSERT into B2BE (ledger,sku,descr,Price,PriceT,PriceP,PricePS,PricePX,unitom,Brandname ) VALUES ('" + myLedger + "','" + mySku + "' ,'" + myDescrip + "', " + myRetail + "," + myTrade + " , " + myPP + " , " + myPPS + "," + myPPX + " ,'" + myUnitom + "' ,'" + myBrandname + "' )";
    command.ExecuteNonQuery();
    2) command.ArrayBindCount = maxArray;
    command.CommandText = "INSERT into B2BE (ledger,sku,descr,Price,PriceT,PriceP,PricePS,PricePX,unitom,Brandname ) VALUES (:p_Ledger , :p_Sku , :p_Descrip , :p_Retail , :p_Trade , :p_PP , :p_PPS , :p_PPX , :p_Unitom , :p_Brandname )";
    OracleParameter prm2 = new OracleParameter("p_Ledger", OracleDbType.Varchar2);
    prm2.Direction = ParameterDirection.Input;
    prm2.Value = a_myLedger;
    prm2.Size = maxArray;
    command.Parameters.Add(prm2);
    etc etc...
    Both ways work fine, but I was trying to work out a way of speeding up the process
    at the moment, option 1) takes 10 mins to process 92k records doing an insert for each record, (in a loop) and option 2) takes 7 mins to process 2 blocks of 60k records then 32k records
    are these speeds acceptable? or am I doing things totally wrong
    (application attacks old foxpro tables using codebase, & process's them all to get ready to push into oracle that process takes all of 45 seconds)... yes codebase is insane.
    Thanks
    -Chris

    Hi,
    I'm not sure what, but I'd say "you're doing something wrong", unless you have Network issues or something perhaps.
    Inserting 60,000 records, using the following code, takes 3 seconds on my system (the database is local however, so I have minimal network delay). How long does this code take on your system?
    I'm using 10.2.0.2.20 ODP, 10.2.0.3 client/database for what it's worth.
    Cheers
    Greg
    TABLE
    ======
    create table bulkttab(col0 number,col1 varchar2(4000), col2 varchar2(4000), col3 varchar2(4000),
    col4 varchar2(4000),col5 varchar2(4000),col6 varchar2(4000),col7 varchar2(4000),
    col8 varchar2(4000),col9 varchar2(4000));
    CODE
    =========
    private static void arraybind()
    string connectStr = "User Id=scott;Password=tiger;Data Source=orcl";
    int size = 60000;
    int[] myArrayofNums = new int[size];
    string[] myArrayofV2s = new string[size];
    for (int i = 0; i < size; i++)
    myArrayofNums[i] = i;
    myArrayofV2s[i] = "abcdefghijklmnopqrstuvwxyz";
    OracleConnection connection = new OracleConnection(connectStr);
    OracleCommand command = new OracleCommand("insert into bulkttab values(:0,:1,:2,:3,:4,:5,:6,:7,:8,:9)", connection);
    command.ArrayBindCount = size;
    OracleParameter numParam = new OracleParameter("param2", OracleDbType.Int32);
    numParam.Direction = ParameterDirection.Input;
    numParam.Value = myArrayofNums;
    command.Parameters.Add(numParam);
    for (int i = 1; i < 10; i++)
    OracleParameter v2param = new OracleParameter("", OracleDbType.Varchar2);
    v2param.Direction = ParameterDirection.Input;
    v2param.Value = myArrayofV2s;
    command.Parameters.Add(v2param);
    connection.Open();
    DateTime start = DateTime.Now;
    command.ExecuteNonQuery();
    DateTime stop = DateTime.Now;
    Console.WriteLine("{0} records inserted in {1} seconds", size,(stop - start));
    connection.Close();
    command.Dispose();
    connection.Dispose();
    OUTPUT
    ========
    60000 records inserted in 00:00:02.2656250 seconds

  • Oracle insert sessions not failover to node1 in 11gr2 suse linux 2 node rac

    Hi all,
    I already setup a 2 node oracle 11gr2 rac and setup is installaed fine. in baseline testing insert sessions are not failovering to the node1. scenario i do as follows.
    Scenario 1 - We ran an insert query in both Nodes and unplugged the Node2 interconnect wires from the server. In which case the Node2 insert session should failover to Node1 without any interruption to the users and the Node2 CRS( Cluster Ready Services) should reboot.
    Scenario 2 - We ran the insert queries and unplugged Node 1 interconnections from the server. In this scenario also Node2 CRS should reboot and the insert session should failover to Node2.
    please let me know any one have face this issue.
    Regards,
    Kanchana.

    Hi,
    I already created the TAF service and try to failover it. Node going down and nothing will happen. But the insert query of the client machine will hand and not getting any error. We using VIP for local and remote listner as well. because still not configure the DNS.
    Regards,
    Kanchana.

  • Test oracle insert very very slow

    I have just created a 11.2.0.3 db based on datawarehouse template, and tested insert 10,000,000 records through sysbench , and took 1 hour.
    IT is extremely slow. I have not tune the db parameters yet, I assume the parameters are good for datawarehouse.
    OS is redhat linux.
    Anybody has advice on this?
    Thanks in advance.

    Having read [url http://sysbench.sourceforge.net/docs/]the manual, it sounds like it's doing row-by-rows inserts via a single session.
    So not really a valid test.
    How about:
    Orion
    [url http://www.dominicgiles.com/swingbench.html]Swingbench
    [url http://kevinclosson.wordpress.com/2012/02/06/introducing-slob-the-silly-little-oracle-benchmark/]SLOB
    These tools will help you benchmark and test your IO subsystems.
    But, by far the most crucial element will be whether you insert 10,000,000 rows row-by-row or in bulk.
    See Tim Gormans's Scaling to Infinity
    not currently available from his website because it's being revamped but copies are out there, e.g.
    http://www.nocoug.org/download/2012-11/NoCOUG_201211_Tim_Gorman_Data_Warehouse_Partitioning.pdf

  • Oracle insert

    I have oracle 9i over jdbc and table process, where
    are columns process_id (Numeric) and process_name (varchar2).
    Column process_id every time incremented.
    How I can insert and back process_id with one sql statement?
    Here I do:
    insert into process (name) values ('Name');
    select process_id from prosesss order by process_id desc; (first row)
    but I wanna do:
    insert into process (name) values ('Name') returning process_id;
    This is not work...
    Any help please!

    Yes it does work with CallableStatement.
    CallableStatement extends PreparedStatement and adds the methods
    T getT(int index);
    to retrieve OUT parameters, one for each setT method.
    Then it adds registerOutParameter(int index, int sqlType)
    Here is an example SQL query that I use with Oracle 9.2 and JDBC:
    BEGIN
    INSERT INTO SPEXTRACT_RATING (
    RATING_ID,
    MULTIMEDIA_CONTENT_ID,
    APPLICATION_USER_ID,
    RATING_CODE,
    RATING_TEXT,
    END_TIME
    ) VALUES (SPEXTRACT_RATING_SEQUENCE.NEXTVAL, ?,?,?,?, SYSDATE)
    RETURNING RATING_ID INTO ?;
    END;
    I set the parameters 1 through 4 and
    registerOutParameter(5, Types.INTEGER)
    that step is required. Then I execute() that CallableStatement and I
    can retrieve the assigned RATING_ID with getLong(5) just fine.
    It works and I'm glad it does.
    PS: of course one wonders why this must be so difficult, but that's this SQL madness...

  • Oracle insert very slow (very urgent)

    Hello
    I am new to this forum and also new to oracle .... I am woking in a C# 3.5 desktop application
    I am Leasing data from socket (1 message per 10 millisecond) and save in queue<T> and then i have a background thread which dequeu the data and perform some calculation and create “insert sql query “ on run time NO STORE PROCEDURE just simple insert query
    For example
    insert into Product values(0,computer , 125.35);
    I pass that insert query to my datalayer which create oracle connection and insert in to a data base. see the code below
    using System.Data.OracleClient
    class db
    OracleConnection conns = null
    public static void conn(string dbalias, string userid, string password){
    try
    string connString = @"server =" + dbalias + ";uid =" + userid + ";password =" + password + ";";
    conns = new OracleConnection(connString);
    conns.Open();
    catch (OracleException e){
    Console.WriteLine("Error: " + e);}}
    public static void ExecuteCommand(string sqlquery)
    try
    OracleCommand cmd = new OracleCommand(sqlquery,conns);
    cmd.ExecuteNonQuery();
    NOW the problem is that inseration in oracle database is very slow please tell me how to solve this issue

    Additionally:
    How slow? Just one single insert is slow? Or you're doing thousands of inserts that way and they add up to being slow?
    If you're doing a bunch of inserts, wrap a bunch of them inside a transaction instead of doing them one by one which will avoid a commit each time as well.
    Or use Array binding or Associatve arrays as indicated previously (You'd need to use Oracle's provider for that though ~ ou're using System.Data.OracleClient).
    You're using a literal hard coded statement, per your example? Use bind variables.
    Also, this forum is for tools that plug in to VS. Problems with ODP.NET code you've written would be more appropriate in the [ODP.NET forum|http://forums.oracle.com/forums/forum.jspa?forumID=146], but that forum deals with problems with Oracle's ODP, not Microsofts (which is in maintenance mode by the way)
    Hope it helps,
    Greg

  • Passing a large number of column values to an Oracle insert procedure

    I am quite new to the ODP space, so can someone please tell me what's the best and most efficient way to pass a large number of column values to an Oracle procedure from my C# program ? Passing a small number of values as parameters seem OK but when there are many, this seems inelegant.

    Passing a small number
    of values as parameters seem OK but when there are
    many, this seems inelegant.Is it possible that your table with a staggering amount of columns or method that collapses without so many inputs is ultimately what is inelegant?
    I once did a database conversion from VAX RMS system with a "table" with 11,000 columns to a normalized schema in an Oracle database. That was inelegant.
    Michael O
    http://blog.crisatunity.com

  • Oracle and PHP - insert special characters problem

    I have computer with these software:
    Fedora Core 4
    Apache 2.0.54
    PHP 5.0.4
    Oracle 10.2.0
    Firefox (character set: UTF8)
    System environment:
    [oracle@computer /] echo $ORACLE_HOME
    /db/u01/app/oracle/product/10.2.0/db_1
    [oracle@computer /] echo $NLS_LANG
    SLOVENIAN_SLOVENIA.AL32UTF8
    I get this for every user, because I have in /etc/profiles:
    NLS_LANG=SLOVENIAN_SLOVENIA.AL32UTF8; export NLS_LANG;
    ORACLE_HOME=/db/u01/app/oracle/product/10.2.0/db_1; export ORACLE_HOME;
    Oracle NLS parameters:
    SQL> SELECT NLS_LANGUAGE, NLS_TERRITORY, NLS_CHARACTERSET FROM NLS_DATABASE_PARAMETERS;
    SLOVENIAN, SLOVENIA, AL32UTF8
    And similar for NLS_INSTANCE_PARAMETERS and NLS_SESSION_PARAMETERS.
    phpinfo() returns:
    Apache Environment
    Variable     Value
    NLS_LANG      SLOVENIAN_SLOVENIA.AL32UTF8
    In /etc/php.ini I have:
    default_charset = "UTF-8"
    mbstring.internal_encoding = UTF-8
    In /etc/httpd/conf/httpd.conf:
    SetEnv NLS_LANG SLOVENIAN_SLOVENIA.AL32UTF8
    In my PHP script "oracle.php" (file encoding is UTF-8) I have:
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" >
    putenv("NLS_LANG=SLOVENIAN_SLOVENIA.AL32UTF8");
    And then code similar to Example 2 in: http://www.php.net/manual/en/ref.oci8.php
    Problem
    When I am trying with PHP insert character "š" ( http://www.fileformat.info/info/unicode/char/0161/index.htm ) or some other special character into Oracle table and then do SELECT from this table I get value "??" which is wrong.
    There is no problem for example with char "a". There is no problem inserting data with SQLPlus or Toad for Oracle - inserted data is always correct. There is no problem for example with echo("some_special_sharacters"); in PHP. I have no problems inserting data with PHP to MySQL database.
    I have read this, but problem still exists:
    http://www.oracle.com/technology/tech/php/pdf/globalizing_oracle_php_applications.pdf
    Plese help.
    Thanks!

    How do you insert it? How do you select it? Where are you viewing the character? What is in the database after the INSERT?
    (SELECT DUMP(col,1016) FROM tab)
    -- Sergiusz

  • Oracle Thin Client Error when Inserting

    Cold Fusion 8 fully patched on Windows Server 2008 fully
    patched
    Oracle 8.1.7.1 on Linux as DB with Network Option
    (encryption)
    Oracle Client 10.2.0.3 Thin Client (tried with ojdbc14 and
    ojdbc12 classes)
    SELECT, DELETE, UPDATE statements all work just fine.
    When an INSERT statement is sent to the DB it is processed
    (the insert is made and committed!) but we are getting a database
    error message "Typlänge größer als Höchstwert"
    which translates approximately to typ length is larger than the
    limit.
    Several threads show this as a problem when the return from
    the db is too large but this is definately not the case (a simple
    insert of one small row).
    The SQL that is run at the DB includes a suffix of "RETURNING
    ROWID" which is not part of our SQL and is apparently added by CF
    or the thin client. We do not handle the return value (we tried but
    that did not help either).
    Due to the fact that the INSERT is actually made and
    committed, we assume the problem must be at the client end and not
    in the database.
    This is a blocking problem and appears to be confined to CF 8
    with the Thin Client.
    CF 8 with an ODBC connection to the same DB works OK.
    Be very glad for any help as we want to go to production with
    this environment.
    Cheers
    Thomas

    I noticed in LiveDocs for
    cfquery
    for CF 8 that the
    result parameter is a little different than described for
    CF7 in that it mentions the ROWID being returned for Oracle insert
    statements.
    What happens when you try including a result parameter (even
    if you don't end up using the result_name.ROWID variable)?
    result Optional Name for the structure in which cfquery
    returns the result variables. For more information, see Usage.
    The cfquery tag also returns the following result variables
    in a structure. You can access these variables with a prefix of the
    name you specified in the result attribute. For example, if you
    assign the name myResult to the result attribute, you would
    retrieve the name of the SQL statement that was executed by
    accessing #myResult.sql#. The result attribute provides a way for
    functions or CFCs that are called from multiple pages, possibly at
    the same time, to avoid overwriting results of one call with
    another. The result variable of INSERT queries contains a key-value
    pair that is the automatically generated ID of the inserted row;
    this is available only for databases that support this feature. If
    more than one record was inserted, the value can be a list of IDs.
    The key name is database-specific.
    result_name.ROWID Oracle only. The ID of an inserted row.
    This is not the primary key of the row, although you can retrieve
    rows based on this ID.
    I have a hunch that there are differences between Oracle 8i
    and 10g in how the rowid value is being "returned".
    Phil

  • Suggestions to improve the INSERT performance

    Hi All,
    I have a table which has 170 columns .
    I am inserting huge data 50K and more records into this table.
    my insert would be look like this.
    INSERT INTO /*+ append */ REPORT_DATA(COL1,COL2,COL3,COL4,COL5,COL6)
    SELECT  DATA1,DATA2,DATA3,DATA4,DATA5,DATA5 FROM TXN_DETAILS
    WHERE COL1='CA';
    Here i want to insert values for only few columns.Hence i specifies only those column names in insert statement.
    But when huge data(50k+) returned by select query then this statement taking   very long time to execute(approximately 10 to 15 mins).
    Please  suggest me to improve this insert statement performance.I am also using 'append' hint.
    Thanks in advance.

    a - Disable/drop indexes and constraints - It's far faster to rebuild indexes after the data load, all at-once. Also indexes will rebuild cleaner, and with less I/O if they reside in a tablespace with a large block size.
    b - Manage segment header contention for parallel inserts - Make sure to define multiple freelist (or freelist groups) to remove contention for the table header. Multiple freelists add additional segment header blocks, removing the bottleneck.  You can also use Automatic Segment Space Managementhttp://www.dba-oracle.com/art_dbazine_ts_mgt.htm (bitmap freelists) to support parallel DML, but ASSM has some limitations
    c - Parallelize the load - You can invoke parallel DML (i.e. using the PARALLEL and APPEND hint) to have multiple inserts into the same table. For this INSERT optimization, make sure to define multiple freelists and use the SQL "APPEND" option. If you submit parallel jobs to insert against the table at the same time, using the APPEND hint may cause serialization, removing the benefit of parallel jobstreams.
    d - APPEND into tables - By using the APPEND hint, you ensure that Oracle always grabs "fresh" data blocks by raising the high-water-mark for the table. If you are doing parallel insert DML, the Append mode is the default and you don't need to specify an APPEND hint. Also, if you're going w/ APPEND, consider putting the table into NOLOGGING mode, which will allow Oracle to avoid almost all redo logging."
    insert /*+ append */ into customer values ('hello',';there');
    e - Use a large blocksize - By defining large (i.e. 32k) blocksizes for the target table, you reduce I/O because more rows fit onto a block before a "block full" condition (as set by PCTFREE) unlinks the block from the freelist.
    f - Use  NOLOGGING
    f - RAM disk - You can use high-speed solid state disk (RAM-SAN) to make Oracle inserts run up to 300x faster than platter disk.

  • Error Inserting Data from Procedure ODI 11g (No data)

    Hi everyone!
    I have a problem inserting data from a procedure, the procedure works "fine" (no errors), on the log counter shows the number of rows inserted, but, on the database rows does not exists, an easy sample is:
    TARGET: ORACLE
    insert into table_t
    (desc)
    values
    (:description)
    SOURCE: ORACLE
    select description from table_s
    I check (ODI), the conection (works fine), modules (works fine), "select from table" (works fine).
    I check (Database), inserting rows direct (works fine).
    What can i check?
    Thanks for your response.

    Hi
    Try below 2 things
    First
    In target:oracle
    insert into table_t
    (desc)
    values
    ('#descpt');
    Second
    In target:oracle
    insert into table_t
    (desc)
    values
    ('#Proc_Var');
    Note: For alias name (*descpt* ) or Project variable (*Proc_Var*) with # symbol and single quotes
    Regards,
    Phanikanth

Maybe you are looking for