Create triggers in the table, sequence, insert and update with "model"?

It must be of rtfm, trial and error thing but you wanted to ask, is it possible to have models or similar automation for the following scenario:

1.), I add the table to the logic model

2.) Using glossary I transform a relational model that was recovered / synchronized with the data dictionary

3.) then I have the new table to add

-but

I would then have auto-DDL of to be synchronized to database:

-create sequence for the id column

-create table

-create indexes for the id column pk

-Create triggers for insert and update

-l' idea is to have db_created_dt and db_modified_dt defined in the table, so that each table has them to the fields of record etc.

-activate the triggers

Each of them following the same naming convention.

Similarity with approx. generator Apex workshop utils sql create table of the copy paste "excel" that creates 'id' - column + sequence and insert the trigger.

rgrds Paavo

Hi Paavo,

most of the steps can be made in one or other way

-create sequence for the id column

-create table

-create indexes for the id column pk

If you want to start in the logic model and you don't want to have the ID column in the logic model and select 'Create the surrogate key' checkbox in the dialog entity - you will get an identity column in the relational model and the version of database and settings in ' preferences > Data Modeler > model > physics > Oracle "you can set the sequence generation and the trigger for taking in load.

fields of record defined in the table, so that each table has them

You can add the same set of columns in all tables with the transformation script 'model of Table... ».

You can also look here Oracle SQL Developer Data Modeler 4.1 user - defined DDL generation using transformation scripts

to see how to grant your DDL generation using the transformation script. DM comes with example to generate separate tables of logging and triggers. You can create your build script of triggers that support logging in these common columns.

Philippe

Tags: Database

Similar Questions

  • ODI 12 c: IKM for differential insert and update with a sequence in the target table

    Hello

    I have a map where I fill in a column of my target table using a database sequence. Now my mapping is supposed to load the target gradually table. So I need a revenge for update and incremental insert. Now with this differential IKM it compares all the columns to match all colmuns line to understand, it should be an insert or update. Now, the following code shows that when the ROW_WID is loaded with a sequence of database.

    If NOT EXISTS

    (select 1 from W_LOV_D T

    where T.ROW_WID = S.ROW_WID

    and ((T.CREATED_BY = S.CREATED_BY) or (T.CREATED_BY IS NULL and S.CREATED_BY IS NULL)) and

    ....

    ....

    < the rest of the comparison of columns >

    )

    So when running ODI returns following error

    Caused by: java.sql.SQLSyntaxErrorException: ORA-00904: "S". "" ROW_WID ": invalid identifier

    Please suggest if there is no other IKM I should use or if there is another way around it without changing the code IKM...

    Hi Marc,

    Thanks for your reply.

    I had solved it. The incremental update process inserts all rows from the source table to I$ table that exists in the target table. It does so by the where sql such as mentioned in my questions as

    WHERE THERE is NOT ( . COLUMNS = . COLUMNS)

    Now in the incremental update IKM Oracle to retrieve all the columns it uses the substitution with parameter as TABLE TARGET. Due to this column sequence will in the comparison and the request fails. When I used the IKM SQL incremental update it used INTEGRATION TABLE as parameter table to pick up the columns, as I'd mentioned in the target sequence is run, so it does not get the sequence column.

    Simple answer: to solve this, use incremental update of the SQL IKM.

    Thank you

    SM

  • Where all the tables, I consulted and updated?

    Hi all
    I'll try to find is possible where oracle provides a few tables where will be stored all the tables I have consulted and updated.

    As I don't have access to the Oracle log files I want to know if oracle provides information in tables.

    I select any table privilege.

    Very much appreciate your help.
    Thank you
    Madhu K.

    Queryng the dba_audit_trail can help you. Just an example:

    SELECT user name,
    To_char (timestamp, 'DD-MON-YY HH24:MI:SS'),
    action_name,
    obj_name,
    owner,
    action
    OF dba_audit_trail
    where ACTION_NAME in ('UPDATE', 'SELECT', 'INSERT')
    TIMESTAMP desc order);

    Kind regards.

  • How to insert image from mysql into the table using php and create the checkbox in the table?

    How can I insert image from mysql into the table using php and create the checkbox for each data as a vote? Here is my code...

    WELCOME

    connect_error) {die ("connection failed:".)} $conn-> connect_error); } $sql = "SELECT no, Calon, ID, of course, the Image OF THE candidates." $result = $conn-> Query; If ($resultat-> num_rows > 0) {echo ' '; export data of each line while ($row = $result-> fetch_assoc()) {"echo"}}
    NO Candidate INFO Vote
    " . $row ["no"]. "-" . $row ["Calon"]. "
    -" . $row ['ID']. "
    -" . $row ['class']. "
    "; } ECHO ' ' ;} else {echo '0 results' ;} $conn-> close();?} >

    hope someone can help me because I am a newbie in this program... need to finish this project... Thank you.

    If you have saved the file name in the database, it's pretty simple.

    echo '' . $row['description'] . '';
    

    Is the same for the box:

    echo '';
    

    If you have saved the image file in the database, it is much more complicated. I recommend you store only the file name in the database.

  • Creating a trigger to insert delete update with the sequence number

    Hey all,.
    I have two tables. tbl_main, tbl_temp. Whenever a record is inserted, deleted, updated in tbl_main, I need to insert the records in tbl_temp. All field/column names are exactly the same, except that in tbl_temp, I now have a single column by using a sequence number, a column to determine if the record has been updated, remove, modified(hence the codes) and the date when a record has been added to the table.
    So far, that's what I have:

    create or replace
    audit_trg relaxation
    after update or insert or delete ON tbl_main
    for each line
    Start
    If the update can
    insert into tbl_temp (seq_id, idx, ctl, action_taken, date_added)
    VALUES
    (temp_seq.nextval, idx, mke, ctl, sysdate, 'U');
    ELSif INSERTION then
    insert into tbl_temp (seq_id, idx, ctl, action_taken, date_added)
    VALUES (temp_seq.nextval, idx, mke, ctl, 'n', sysdate);
    ELSIF deletion then
    insert into tbl_temp (seq_id, idx, ctl, action_taken, date_added)
    VALUES (temp_seq.nextval, idx, mke, ctl, would be ', sysdate);
    END IF;
    END audit_trg;

    I tried several combinations, but I get many compilation errors. This code looks good or I am the way of track? Thanks in advance.

    Who looks fine for me. What are the mistakes are you?

    Assuming that MKE and CTL are columns in the base table, your INSERT statements will insert either the: new.mke and: new.ctl values or the: old.mke and: old.ctl values in the table. Presumably, you could insert the: new values for inserts and updates, and the: old values for deletions.

    Justin

    Published by: Justin Cave 27 February 2009 16:08

    DOH! Just noticed the error...

  • Why I can't create indexes on the table of RDF data

    When I tried to create indexes on the table of RDF data, it always say the table or view does not exist. I created the RDF model using java codes:

    Oracle Oracle = new Oracle ("jdbc:oracle:thin:@localhost:1521:orcl", "system", "123");

    Chart GraphOracleSem = new GraphOracleSem (oracle, "test2");


    And used the following commands in sqlplus to create indexes:

    SQL >

    SELECT THE SEPARATE OWNER, OBJECT_NAME

    FROM DBA_OBJECTS

    WHERE TYPE_OBJET = 'TABLE '.

    4. AND OBJECT_NAME like ' % TEST2;

    OWNER

    --------------------------------------------------------------------------------

    OBJECT_NAME

    --------------------------------------------------------------------------------

    SYSTEM

    TEST2_NS

    SYSTEM

    RDFB_TEST2

    SYSTEM

    TEST2_TPL

    OWNER

    --------------------------------------------------------------------------------

    OBJECT_NAME

    --------------------------------------------------------------------------------

    SYSTEM

    RDFC_TEST2


    SQL > connect as sysdba

    Enter the password:

    Connected.

    SQL >

    SQL >

    SQL > select * from TEST2_TPL;

    Select * from TEST2_TPL

    *

    ERROR on line 1:

    ORA-00942: table or view does not exist

    SQL > CREATE INDEX test2_sub_idx ON TEST2_TPL (triple. GET_SUBJECT());

    CREATE INDEX test2_sub_idx ON TEST2_TPL (triple. GET_SUBJECT())

    *

    ERROR on line 1:

    ORA-00942: table or view does not exist

    Hi Shifu,

    It is not recommended to use the SYS or SYSTEM to store/manage schema graph RDF data.

    Can you please try the following in a SQL * more terminal?

    SQL > conn system/eu1

    Connected.

    SQL >

    SQL >

    SQL > create user graphuser identified by graphuser;

    Created by the user.

    SQL > grant connect, resources, unlimited tablespace to graphuser;

    Grant succeeded.

    SQL > conn graphuser/graphuser

    Connected.

    SQL > create table graph_tpl (triple sdo_rdf_triple_s) compress;

    Table created.

    SQL > sem_apis.create_sem_model exec ('graphic', 'graph_tpl', 'three');

    PL/SQL procedure successfully completed.

    SQL > insert into graph_tpl values (sdo_rdf_triple_s ('graph', '', '', ''));

    1 line of creation.

    SQL > select count (1) in the mdsys.rdfm_graph;

    1

    You see the same result?

    Thank you

    Zhe Wu

  • ORA-04089: cannot create triggers on the objects belonged to SYS

    I did a google on this error and it say that I should never get to anything to do with the system and also to make another account when executing my script, I did this, but I still get the error code and the error is less than

    REM **********************************************************************

    CREATE TABLE gam_attribute_bin (/ * gam_ab * /)

    attribute_owner_type char (1) NOT NULL, / * player Att, Att User Instance Att Att class.

    Class criteria, client static/Gulp * /.

    ATTRIBUTE_NAME VARCHAR2 (20) NOT NULL,

    owner_id NUMBER (10) NOT NULL, / * specific check-in attribute_owner * /.

    LONG RAW NULL binary_value

    ) TABLESPACE gam_lgtab STORAGE (INITIAL 256 K NEXT 256 K MAXEXTENTS PCTINCREASE 0 unlimited)

    /

    ALTER TABLE gam_attribute_bin ADD)

    CONSTRAINT gam_attribute_bin_pk

    UNIQUE (attribute_owner_type, owner_id, attribute_name)

    USING INDEX

    TABLESPACE gam_ind

    STORAGE (INITIAL 256 K NEXT 256 K MAXEXTENTS PCTINCREASE 0 unlimited)

    )

    /

    Suppression of REM binary attribute when necessary

    CREATE TRIGGER gam_att_delete

    AFTER YOU REMOVE gam_attribute

    FOR EACH LINE

    BEGIN

    IF (: old.attribute_data_type = 'B')

    THEN

    DELETE FROM gam_attribute_bin

    WHERE attribute_owner_type =: old.attribute_owner_type

    AND attribute_name =: old.attribute_name

    AND owner_id =: old.owner_id;

    END IF;

    END;

    /

    ERROR on line 1:

    ORA-04089: cannot create triggers on the objects belonged to SYS

    hope someone can help me clear this up thanks

    Hello

    You code works very well for me.  I had to change to run on my system tablespaces, but otherwise, what you posted worked for me when I tried (in a different schema than SYS, of course).

  • Creating indexes for the table

    can someone help me how to create indexes in the table. I m creating own table... I need to select a particular field in the table. So I need to calculate the index position. I use my code like this,

    This will returnthe number of columns in the table.

    Class array

    {

    private int Table_Index()
    {
    for (int x = 0; x)<>
    {
    table_index = x;
    }
    Return table_index;
    }

    }

    MainClass can I get this length of Index

    Table T1;

    int t1 is T1. Table_Index();

    This property returns my length (4) of table column

    Using this index (t1) I HAV to see what position I'm at table now...

    someone help me...

    You can use a listfield, he supports methods to get the selected row and its contents.

  • How to modify and update a line later was inserted and updated in the doDML() method?

    Mr President

    Jdev worm is 12.2.1

    How to modify and update a line later was inserted and updated in the doDML() method?

    I added two rows in my table a method of action-listener in bean managed and secondly with operation doDML() as below.

    Method 1-first row in managed bean

        public void addNewPurchaseVoucher(ActionEvent actionEvent) {
            // Add event code here...
            BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();        
            DCIteratorBinding dciter = (DCIteratorBinding) bindings.get("VoucherView1Iterator");        
            RowSetIterator rsi = dciter.getRowSetIterator();        
            Row lastRow = rsi.last();        
            int lastRowIndex = rsi.getRangeIndexOf(lastRow);        
            Row newRow = rsi.createRow();        
            newRow.setNewRowState(Row.STATUS_NEW);        
            rsi.insertRowAtRangeIndex(lastRowIndex +1, newRow);         
            rsi.setCurrentRow(newRow);
            
            BindingContainer bindings1 = BindingContext.getCurrent().getCurrentBindingsEntry();        
            DCIteratorBinding dciter1 = (DCIteratorBinding) bindings1.get("VdetView1Iterator");        
            RowSetIterator rsi1 = dciter1.getRowSetIterator();        
            Row lastRow1 = rsi1.last();        
            int lastRowIndex1 = rsi1.getRangeIndexOf(lastRow1);        
            Row newRow1 = rsi1.createRow();        
            newRow1.setNewRowState(Row.STATUS_NEW);        
            rsi1.insertRowAtRangeIndex(lastRowIndex1 +1, newRow1);         
            rsi1.setCurrentRow(newRow1); 
            
            
        }
    


    Method of doDML() of line 2 seconds in the entityImpl class


        protected void doDML(int operation, TransactionEvent e) {        
            setAmount(getPurqty().multiply(getUnitpurprice()));
           
            if (operation == DML_INSERT)  
                       {          
                         insertSecondRowInDatabase(getVid(),getLineitem(),getDebitst(),
        (getPurqty().multiply(getUnitpurprice()).multiply(getStaxrate())).divide(100));  
                           }
                           
                           if(operation == DML_UPDATE)
                           {
                               
                           updateSecondRowInDatabase(getVid(),getLineitem(),getDebitst(),
        (getPurqty().multiply(getUnitpurprice()).multiply(getStaxrate())).divide(100));                        
                           }                                       
            super.doDML(operation, e);
        }
    
        private void insertSecondRowInDatabase(Object value1, Object value2, Object value3, Object value4)  
                  {  
                    PreparedStatement stat = null;  
                    try  
                    {  
                      String sql = "Insert into vdet (VID,LINEITEM,DEBITST,AMOUNT) values 
       ('" + value1 + "','" + value2 + "','" + value3 + "','" + value4 + "')";  
                      System.out.println("sql= " + sql);    
                      stat = getDBTransaction().createPreparedStatement(sql, 1);  
                      stat.executeUpdate();  
                    }  
                    catch (Exception e)  
                    {  
                      e.printStackTrace();  
                    }  
                    finally  
                    {  
                      try  
                      {  
                        stat.close();  
                      }  
                      catch (Exception e)  
                      {  
                        e.printStackTrace();  
                      }  
                    }  
                  }  
                  
                  private void updateSecondRowInDatabase(Object value1, Object value2, Object value3, Object value4)  
                  {  
                    PreparedStatement stat = null;  
                    try  
                    {  
                      String sql = "update vdet set vid='"+ value1+"',lineitem='"+ value2+"',DEBITST='" 
       + value3 + "', AMOUNT='" + value4 + "' where VID='" + VID + "'";  
                      System.out.println("sql= " + sql);      
                      stat = getDBTransaction().createPreparedStatement(sql, 1);  
                      stat.executeUpdate();  
                    }  
                    catch (Exception e)  
                    {  
                      e.printStackTrace();  
                    }  
                    finally  
                    {  
                      try  
                      {  
                        stat.close();  
                      }  
                      catch (Exception e)  
                      {  
                        e.printStackTrace();  
                      }  
                    }  
                  }
    

    Now the problem is that when later I change the quantity and price of the first line isn't updated but second row, because I used the command

     <af:button actionListener="#{bindings.Commit.execute}" text="Commit"
    

    This button update the first line added by bean managed, but the second row remains unchanged.

    Please help how to update the two lines with the same button or something else.

    Concerning

    DML_UPDATE will call only if there is some change data attributes.

    I guess that the update statement is false because vid looks like a primary key for the table, then, how update you the primary key of the update statement and how the update condition statement where the vid = '0'

    I assume the update statement should look like:

      private void updateSecondRowInDatabase(Object value1, Object value2, Object value3, Object value4)
      {
        PreparedStatement stat = null;
        try
        {
          String sql =
            "update vdet set lineitem='" + value2 + "',DEBITST='" + value3 + "', AMOUNT='" + value4 +
            "' where VID='" + value1 + "'";
          System.out.println("sql= " + sql);
          stat = getDBTransaction().createPreparedStatement(sql, 1);
          stat.executeUpdate();
        }
        catch (Exception e)
        {
          e.printStackTrace();
        }
        finally
        {
          try
          {
            stat.close();
          }
          catch (Exception e)
          {
            e.printStackTrace();
          }
        }
      }
    
  • Privilege system to create constraints on the Tables belong not to the

    I'm a user of the application who must create and then drop a check constraint on a table that is partitioned in another schema. The code is generic, and the name or the table owner is not known in advance.

    The user of the application has the ALTER ANY TABLE system privilege granted via a role, and also has "all THE ' table privileges on the table, THE DML privs, SELECT, REFERENCES etc. - also through roles. The user of the application has a synonym private for the data table.

    The command I use is:

    ALTER TABLE any_table
    ADD CONSTRAINT generated_name
    CHECK (CASE WHEN BUSINESS_DATE = TO_DATE('20121130','YYYYMMDD') AND = 6 AND PROCESSING_LOCATION = "CAP" RUN_ID THEN 1 OTHER 2 END = 2);

    It fails with:

    ORA-00942: table or view does not exist

    The user of the application can query the table very well and even modify it to partition exchange using a similar code. I tried the table name and the name of constraint qualification with the owner of the schema; calling the makes table name no difference, by qualifying the name of the constraint is not allowed. I changed the body of the constraint to a simple condition - it predictable made no difference.

    I would appreciate your help and your suggestions.

    Has nothing to do with privileges. ALTER TABLE requires the name of the table. Synonym will not fly. Use:

    ALTER TABLE table_owner.table_name
    ADD CONSTRAINT generated_name
    CHECK( CASE WHEN BUSINESS_DATE = TO_DATE('20121130','YYYYMMDD') AND RUN_ID = 6 AND PROCESSING_LOCATION = 'PAC' THEN 1 ELSE 2 END = 2);
    

    SY.

  • Insert and update server behaviors in the same form

    I have a php form that is inserted into a table and then update another table. I have the form of inserting the record first and then I want to update the other table. I'm starting to learn and understand PHP, but I don't know how to have the update function to run after that it inserts the records. I guess that's something like if you insert this disc, then update this record and then go to the redirect page. I know this goes to redirect page after it inserts the record, but I don't know how to tell him not to go to the $insertGoTo. I want him to run the following update function and then go to the $insertGoTo and not the $updateGoTo. Thanks in advance for any help.

    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
      $insertSQL = sprintf("INSERT INTO employee (CompId, empfirstname, empmiddleint, emplastname, EmpType, EmpStatus) VALUES (%s, %s, %s, %s, %s, %s)",
                           GetSQLValueString($_POST['CompId'], "int"),
                           GetSQLValueString($_POST['empfirstname'], "text"),
                           GetSQLValueString($_POST['empmiddleint'], "text"),
                           GetSQLValueString($_POST['emplastname'], "text"),
                           GetSQLValueString($_POST['EmpType'], "text"),
                           GetSQLValueString($_POST['EmpStatus'], "text"));
      mysql_select_db($database_dotweb, $dotweb);
      $Result1 = mysql_query($insertSQL, $dotweb) or die(mysql_error());
      $insertGoTo = "Roster.php?CompId=" . $_POST['CompId'] . "";
      if (isset($_SERVER['QUERY_STRING'])) {
        $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
        $insertGoTo .= $_SERVER['QUERY_STRING'];
      }
      header(sprintf("Location: %s", $insertGoTo));
    }
    if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
      $updateSQL = sprintf("UPDATE company SET CompanyType=%s WHERE CompId=%s",
                           GetSQLValueString($_POST['CompanyType'], "text"),
                           GetSQLValueString($_POST['CompId'], "int"));
      mysql_select_db($database_dotweb, $dotweb);
      $Result1 = mysql_query($updateSQL, $dotweb) or die(mysql_error());
      $updateGoTo = "purchases.php";
      if (isset($_SERVER['QUERY_STRING'])) {
        $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
        $updateGoTo .= $_SERVER['QUERY_STRING'];
      }
      header(sprintf("Location: %s", $updateGoTo));
      
    }
    
    

    PHP code is executed from top down and is controlled by the conditional statements ('if' blocks). To achieve what you want, you need to combine the conditional statements that control the insert and update server behaviors and to move the redirect to the end of the code. Amend as follows:

    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
      $insertSQL = sprintf("INSERT INTO employee (CompId, empfirstname, empmiddleint, emplastname, EmpType, EmpStatus) VALUES (%s, %s, %s, %s, %s, %s)",
                           GetSQLValueString($_POST['CompId'], "int"),
                           GetSQLValueString($_POST['empfirstname'], "text"),
                           GetSQLValueString($_POST['empmiddleint'], "text"),
                           GetSQLValueString($_POST['emplastname'], "text"),
                           GetSQLValueString($_POST['EmpType'], "text"),
                           GetSQLValueString($_POST['EmpStatus'], "text"));
      mysql_select_db($database_dotweb, $dotweb);
      $Result1 = mysql_query($insertSQL, $dotweb) or die(mysql_error());
    
      $updateSQL = sprintf("UPDATE company SET CompanyType=%s WHERE CompId=%s",
                           GetSQLValueString($_POST['CompanyType'], "text"),
                           GetSQLValueString($_POST['CompId'], "int"));
      mysql_select_db($database_dotweb, $dotweb);
      $Result1 = mysql_query($updateSQL, $dotweb) or die(mysql_error());  
    
      $insertGoTo = "Roster.php?CompId=" . $_POST['CompId'] . "";
    
      if (isset($_SERVER['QUERY_STRING'])) {
        $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
        $insertGoTo .= $_SERVER['QUERY_STRING'];
      }
      header(sprintf("Location: %s", $insertGoTo));
    }
    
  • Insert and update by the select statement

    Hi all
    How can I insert and update in an oracle 10g database table
    by a select statement. do not merge.

    Florian wrote:
    Hi all
    How can I insert and update in an oracle 10g database table
    by a select statement. do not merge.
    >

    How can I insert and update in a table of database oracle 10g via a select statement. do not merge.

    Do you mean by using subqueries?

    Something like

    insert into whatever
      ...select statement
    
     update whatever
        set (column, column) = (select column, column ...)
    

    There is a lot of information on this topic in the online documentation

  • Who holds the keys for encryption AES mentioned in the table under "security and features iCloud?

    Who holds the keys for encryption AES mentioned in the table under "security and features iCloud?

    Article

    Security and privacy - Apple Support Overview iCloud

    has a useful table in the section entitled Security and features iCloud.

    The table shows the types of keys used to secure the different types of data.

    Apple holds these keys as it may be requested of Apple by third parties?

    Hmmm... You definitely raise a good and valid question to which I don't know the answer to, but if I had to guess, I would say that no one.  Would this be possible?  I know I've heard Cook mention that they "don't hold the keys" but does the same thing, it refers?  It would make a very interesting topic of discussion.

  • A snapshot could not be created. Check the event logs "VSS" and "SPP" application for more information

    Original title: a snapshot could not be created. Check the event logs "VSS" and "SPP" application for more information. Details: shadow enough storage to create the copy storage file or other shadow copy data. Error code: 0 x 81000019

    I tried to back up my files using an external hard drive (which I have done before with Windows 7 64-bit), but recently I get the same error code. I have re-formatted external hard drive, run diagnostics on it, restarted the computer, etc and nothing seems to work. I also tried both options posted in another forum with the same error and too, they were not successful (external is already NTFS and now that it has been re-formatted is completely empty). Windows has more suggests? I hope not to have to use drag and drop my files whenever I want to save my computer.

    Thanks for the help!

    Read this article because I believe that the amount of free space in the 100 MB partition is too small. Article is a different error code, but the technique to increase the size of the 100 MB partition is the same.

    Note: Backup of your hard drive as described in the article.

    How to fix error code: 0 x 81000033
    http://www.PAGESTART.com/win7br0x8100003301.html

    JS
    http://www.PAGESTART.com

    Never be afraid to ask. This forum has some of the best people in the world to help.

  • difference in size of the Table in oracle and timesten

    Hi all


    I have a large table with 2 million records,

    I see no big difference in the size of the table in oracle and Timesten
    In oracle table size to 4 GB, but in Timesten is arround 15 GB (using ttSize for 2 M lines)

    Could you please tell me what could be the cause of this difference?
    Is the size of the table in Timesten is always more than oracle?
    What are the factors and parameters affecting the size of Perm?

    It is typical for the storage needs for a DataSet to be significantly larger in TimesTen in Oracle. This is due to the Organization of the very different internal storage in TT from Oracle; Oracle is optimized to save space while TT is optimized for performance.

    Ways to minimize these costs are:

    1. make sure you use TimesTen 11.2.1. This has some characteristics compare compact (minor) and earlier versions.

    2 assess the use of numeric types; native types TimesTen (TT_TINYINT, TT_SMALLINT, TT_INTEGER and TT_BIGINT) use less space than MANY and longer by the effective calculation as well.

    3. check use of data of variable length (VARCHAR2, VARBINARY, NVARCHAR) and the trade-offs between online and online storage (see documentation for the compromise between these options stirage TT).

    Even when you use the foregoing, you will still see a storage important "inflation" for TT from Oracle.

    Chris

Maybe you are looking for