References and primary key

Hello
I'm trying to greate a new data store and the columns in my oracle Database 11 g. ODI-> new MODEL-> genereate DDL.
Now, I want to create a new one with primary keys and references, but I can't find the option setting.
Is it possible to choose this option?
I work with the German version of ODI.

Concerning
Michael

extend the store data, click constraints folder, right-click, and click new key. Now you can select the type of key and on the columns tab, the key columns can be selected.

Tags: Business Intelligence

Similar Questions

  • View of Materlized primary key and primary key in the master tables

    We use the Oracle 11 g 2 and I created a view on several paintings of master materlized. The paintings of masters all have the primary key, but I understand not all primary key columns in the query definition.
    According to Oracle manual e10592
    Specify WITH PRIMARY KEY to create a primary key materialized view. This is the default ....
    The master table must contain an enabled primary key constraint, and the defining query of the materialized view 
    must specify all of the primary key columns directly.
    My MV created OK and works. My question is what can be the impact on my MV? Could he hit to performance. It takes 40 minutes to the MV should be created and 5 minutes to refresh the one line insert in each table of mater. I would like to see it refresh in a few seconds.

    Retrieve the lines of the mview is purely a function of the number of lines and indexing on the mview himself. Mview refreshing at the time of the wall depends on the quality of the query used to refresh the mview. If you include the PKs of the source table in the mview matter or not, here. What matters is the execution of the refresh request path. Is it okay to indexation on the underlying tables to support the joints. Did you use mlog$ _s to allow a quick refresh - mlog$ _s are still usable for your mview. There are a number of possible causes for your problem and we do not have enough information to make an estimate of the problem.

    BTW, if the mview could refresh in a few seconds without mlog$ _s, probably unnecessary a mview.

  • IOT and primary keys

    Hello

    I read Chapter 10 by tom kyte's expert oracle database architecture, and I'm a bit confused. It seems to me that if he says an IOT must be generated using the pharmacokinetics of this table. What to do if our table does not have a PK?

    Thank you

    OracleGuy777 wrote:
    Thanks for your reply. I guess what I'm trying to determine what logical thinking behind why an IOT must have a PK.

    It may be not all logic other than "it was the easiest way to get the functionality created.

    Many Oracle features just a feature by visitors request. Others come in response to the availability of features in the competition. (There are other reasons as well).

    If the functionality of the ITO was created due to the customer's requirements, then logic could "create what the applicant customer needs." If the function has been created in response to the competition, so it is quite possible the requirements has been "to provide enough to check the box.

    That said, I certainly have a hard time imagining a scenario where a permission entry not unique/null-IOT could exist, especially taking into account the fact that a PK may involve 32 columns. After all, an IOT is simply an index that happens to include the additional data and to support inline.

  • Should I create primary keys or foreign first?

    I'm new to sql and a student please bear with me.

    I create a script so that when I run a sequence of tables are created. I created all of my fine tables but now I want to add the primary and foreign keys. I tried to do all this at once before but had problems, my idea was to use alter table instructions and add the constraints of key primary and foreign in this way.

    The thing I want to know is what to build first? Should I do any foreign keys and primary keys or visa versa? Or can I do them sequentially and connect relationships between the tables that I will. Thanks in advance!

    Hello

    One thing to remember as a student is to apply logic to the task at hand. In this case, to create a foreign key, it must refer to a primary key in its definition as well so the KP must exist first. What I tend to do is to break down as statements in separate files or sections separate scripts and execute it in a logical order. IE Tables first, and then of PK and UK followed by the FK etc.. I also prefer to create offline rather than constraints in create table statements.

    Hope this helps

    André

  • Local primary key on reference partitioned Table

    Oracle running on Red Hat Linux Rel6 11.2.0.3.

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

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

    (entire annual <-primary key)

    whole Source_ID,

    load_dt date,

    date of doc_dt,

    doc_info clob,

    ...)

    which is partitioned on column source_id.

    I created a partitioned table of reference as follows:

    create table doc_entities_prt)

    whole doc_entity_id

    all annual,

    whole entity_id,

    forced doc_ent_fk (annual) references to documents (annual)

    tablespace...

    allow the movement of the line

    benchmark score (doc_ent_fk);

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

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

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

    Table created.

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

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

    The index is created.

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

    SQL >

    SY.

  • Difference between the immediate and normal constraint primary key value

    Hello
    I tried the following to understand the difference between immediate constraint set and the primary normal stress
    create table cust (cust_id number ,cust_name varchar2(25));
    
    alter table cust add constraint cust_id_pk primary key(cust_id)
    deferrable initially deferred;
    
    SQL> insert into cust values(1,'raj');
    
    1 row created.
    
    SQL> insert into cust values(1,'sam');
    
    1 row created.
    
    SQL> commit;
    commit
    *
    ERROR at line 1:
    ORA-02091: transaction rolled back
    ORA-00001: unique constraint (SCOTT.CUST_ID_PK) violated
    
    
    SQL> set constraint cust_id_pk immediate;
    
    Constraint set.
    
    SQL> 
    SQL> insert into cust values(1,'lata');
    
    1 row created.
    
    SQL> insert into cust values(1,'lata');
    insert into cust values(1,'lata')
    *
    ERROR at line 1:
    ORA-00001: unique constraint (SCOTT.CUST_ID_PK) violated
    The above error violation even works for a normal constraints primary / unique

    So what is the use of the command

    immediate Set constraint cust_id_pk;


    Thank you

    So what is the use of the command

    In fact, the use of the command when you're dealing with foreign key constraints. As explained below

     SQL>  create table cust (cust_id number ,cust_name varchar2(25), supplier_id number);
    
    Table created.
    
    SQL> create table supp(supplier_id number);
    
    Table created.
    
    SQL> alter table supp add primary key(supplier_id);
    
    Table altered.
    
    SQL>  ALTER TABLE cust ADD CONSTRAINT fk_cust_supp
      2    FOREIGN KEY (supplier_id)
      3    REFERENCES supp (supplier_id)
      4    DEFERRABLE
      5    INITIALLY deferred;
    
    Table altered.
    

    To insert a line in the cust table without entering Ref provider table supp

    SQL> insert into cust values(1,'raj',111);
    
    1 row created.
    

    Line by 1 created successfully (attention this validation is not yet done) because the foreign key constraint is initially deferred.

    Now

    SQL> set constraint fk_cust_supp immediate;
    set constraint fk_cust_supp immediate
    *
    ERROR at line 1:
    ORA-02291: integrity constraint (OWNER.FK_CUST_SUPP) violated - parent key not found
    

    Since Ref no outs in extra table so forced provider violated.

    allows to insert a row in the vendor corresponding with the vendor id in the cust table id

    SQL> insert into supp values(111);
    
    1 row created.
    

    Now, try

    SQL> set constraint fk_cust_supp immediate;
    
    Constraint set.
    

    but now, if you try to insert a row into the table cust without this vendor id in table supp, it give error (since now forced to check from the inserted row, even will not wait for commit)

    SQL>  insert into cust values(3,'bob',222);
     insert into cust values(3,'bob',222)
    *
    ERROR at line 1:
    ORA-02291: integrity constraint (OWNER.FK_CUST_SUPP) violated - parent key not found
    

    Also, in the case of primary key constraints will be checked when you perform VALIDATION, otherwise that it will allow you to insert the second row.

    SQL> alter table cust add constraint cust_id_pk primary key(cust_id)
      2  deferrable initially deferred;
    
    Table altered.
    
    SQL> insert into cust values(1,'raj');
    
    1 row created.
    
    SQL> insert into cust values(1,'sam');
    
    1 row created.
    
    SQL> insert into cust values(1,'bob');
    
    1 row created.
    
    SQL> commit;
    commit
    *
    ERROR at line 1:
    ORA-02091: transaction rolled back
    ORA-00001: unique constraint (OWNER.CUST_ID_PK) violated
    
    SQL> 
    
    SQL> drop table cust;
    
    Table dropped.
    
    SQL> create table cust (cust_id number ,cust_name varchar2(25));
    
    Table created.
    
    SQL> alter table cust add constraint cust_id_pk primary key(cust_id)
      2  deferrable initially deferred;
    
    Table altered.
    
    SQL> set constraint cust_id_pk immediate;
    
    Constraint set.
    
    SQL> insert into cust values(1,'raj');
    
    1 row created.
    
    SQL>  insert into cust values(1,'sam');
     insert into cust values(1,'sam')
    *
    ERROR at line 1:
    ORA-00001: unique constraint (OWNER.CUST_ID_PK) violated
    
    SQL> 
    

    Published by: Azhar Husain on July 27, 2011 12:01

  • A foreign key can reference a unique non-primary key?

    Hello everyone, I have 2 tables: [books] with the fields (id, title, author, isbn) and another table called [issue Book] with the fields (id, borrower_id, borrow_date, book_isbn)...
    Now the field (book_isbn) in the [book number] table of authorities (isbn) in the table [books], which is a single field, but not a primary key.

    My questions:

    1 - is this OK for a foreign key referencing a unique key but no primary in another table?

    2 is it normal that the foreign key field to have another name as the field it references in another table?

    Your help is appreciated indeed...

    Yes CF can refer to Unique key, but you must specify the Unique key column when the creation of FK

    and YES FK may have a different name, but for your convenience, we use the same column name

    Here is an example

    create table mymaster
    (val_id number unique);
    
    create table mydetail
    (det_id number,
     val_id_fk number references mymaster(val_id));
    

    Please mark correct / useful if it is

    Bangoura
    [My Oracle Blog | http://baigsorcl.blogspot.com/]

  • What is the difference between primary key and unique indexes with forced not null?

    Primary key is = unique index + not null?

    The short answer is Yes.

    However, even if the primary key, applying both uniquness and not null, there is a notion of "special".

    You can only have one primary key in tables, but you can have multiple unique indexes and constraints not null.

    See: https://asktom.oracle.com/pls/asktom/f?p=100:11:0:P11_QUESTION_ID:8743855576462

  • How to join two tables to retrieve the data from the columns in table two. Tables have primary and foreign key relationships

    Hello

    I want to join the two tables to retrieve the data from the columns of the two table passing parameters to the join query. Tables have primary and foreign key relationships

    Details of the table

    Alert-1 - AlertCode (FK), AlerID (PK)

    2 AlertCode-AlertDefinition-(PK)

    Help, please


    ----------

    Hi Vincent,.

    I think that you have not worked on adf 12.1.3.  In adf 12.1.3 you don't have to explicitly create the association. When you create the EO to your table, Association xxxxFkAssoc, will be created by ADF12.1.3 for you automatically. Please try this and do not answer anything... You can also follow the links below. I solved the problem by using the following link

    Oracle ADF Guide step by step - Oracle ADF tutorial: creating a relationship of the master / detail using Oracle ADF

    ---

  • Primary key and foreign key between the different schemas

    Hi all;

    SCOTT user have a 'rank' of table-> it contains the primary key-> users tablespace

    The U1 user have a 'emp' table-> it contains the foreign key-> test tablespace

    U1 > select constraint_name, constraint_type, r_owner, owner, r_constraint_name of all_constraints where table_name = 'EMP ';

    OWNER CONSTRAINT_NAME C R_OWNER R_CONSTRAINT_NAME

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

    U1              EMP_EMPLEV_C12_FK R SCOTT GRADE_GRL_C1_PK

    If I have connection U1, no possibility to find the name of the primary key without connection scott table?

    Thank you

    Hello

    So, you want to know what picture of the SCOTT schema has the constraint that is named "GRADE_GRL_C1_PK." Isn't it?

    If so,.

    SELECT table_name

    Of all_constraints

    Owner WHERE = 'SCOTT '.

    AND the argument constraint_name = 'GRADE_GRL_C1_PK. '

    ;

  • manually assign primary key and copy to the detailed form

    Hi experts,

    Oracle Apex 4.2, 11g database, using windows 7.

    I created a form and created automatic product no. (not only sequence) with logic and SQL. SQL query produced good wise exercise, and exercise begin from 01 July and ends 30 June each year. This means if the 07/01/2015 start it will create a new voucher No.

    The main Table name is GL_PV and the columns are:

    Number of PV_No

    Date of PV_Date

    Number of CC_code

    number amount

    Remarks varchar2 (100)

    Created a process to submit before the calculations and validations.

    The codes are

    NVL SELECT (MAX (to_number (nvl(pv_no,0))) + 1, 1) AMENDMENTS

    IN: P15_pv_no

    OF GL_PV

    WHERE pv_date

    BETWEEN to_date (' 01-07-' |) (extract (year from to_date (: P15_pv_date, "dd-mm-yyyy")))

    + case when extracted (month of to_date (: P15_pv_date, "dd-mm-yyyy")) < = end of another 0, then 6-1), "dd-mm-yyyy")

    AND to_date (30 - 06-' |) (extract (year from to_date (: P15_pv_date, "dd-mm-yyyy")))

    (+ case when extracted (month of to_date (: P15_pv_date, "dd-mm-yyyy")) < = 6 then 0 otherwise 1 end), "dd-mm-yyyy")

    and cc_code =: P15_cc_code;

    and press the button when Conditions = Generate_Button

    In the form of master I put the data and click on create button is working well and generating good can result.

    Now that I've created a detail of my detail table is pv_detail and the columns are

    pv_voucher_no

    pv_date

    account_code

    Remarks

    amount

    I want to create the relationship of the master / detail form.

    I tried:

    • primary key and foreign key, but does not. column GL_PV table primary key (PV_NO, PV_DATE), PV_DETAIL (pv_voucher_no, pv_date) foreign key table columns: -.
    • has created one for master and 2nd 2 form for details, good master shape generates but not detail of.

    I want to assign pv_no, pv_date in both value table (master / detail), in other words copy value pv_no and pv_date of main table in detail table pv_voucher_no and pv_date.

    Please advise how I can solve this problem.

    Thank you forum oracle to solve my problems.


    error report: ORA-01790: expression must have the same type of data, matching expression

    Find the solution on this forum

    Solution:

    Attributes and the tabular form:

    Change the default type = PL/SQL Expression on the function

    Default = to_date(:P15_PV_DATE,'DD-MON-YYYY')



  • How to generate the primary key element and move to another page?

    How to make the primary key value to another page in a table?

    Form on T_ITEMS 2.png

    Hello

    I am a beginner in the apex,

    Please, now I want to add the primary key to page 1 for item id in page 2...

    Notice:

    Before, I created (process of pl/sql in the rendering of page @ after the header section) to get the id of secuance.

    BEGIN
    :P17_ID := seq_t_items_id.NEXTVAL;
    END;
    
    
    

    primary key is generated for the element ID of page 1... BUT When I update 'page 1' I see error and solved when shut down my browser and open it again...

    Please help me to...

    1. Generate a primary key (article id @ page 1)... without refresh error. ?
    2. Pass him (item_id) on page 2

    Thank you all for...

    Sorry I'm beginner in apex,

    I don't know how Pass value of the item_id TO page 1 page 2 "in the form ID", turn to the first PHOTO... .
    Help me..

    Thank you

  • Potential problems for tables without primary keys and unique keys

    GoldenGate 11.2.1.0.3/Solaris 10
    DB: Oracle for Oracle (Source and target is 11.2.0.3)
    Topology: unidirectional


    In our one-way configuration GG, little of the tables being replicated is not a primary key or a Unique key.

    Last week when we have implemented GG for the test, we received warnings for these table below.
    GGSCI > add trandata WMHS_UD.crtn_dtl
    
    2013-01-12 11:34:33  WARNING OGG-00869  No unique key is defined for table 'CRTN_DTL'. All viable columns will be used to represent the key, but may not guarantee uniqueness.  KEYCOLS may be used to define the key.
    
    Logging of supplemental redo data enabled for table WMHS_UD.crtn_dtl.
    Replication seems to work very well for these tables.

    Googling, I think that there may be performance degradation when you replicate tables without PK or the United Kingdom.

    But are there other potential problems such as data of a certain kind not replicated to the lack of PK/UK?

    It really depends on the data.

    By default, GG is combining all columns as a virtual primary key but don't no conflict control by default. So when you can be sure that the record you insert into the table is unique, then it will work.
    BUT as soon as you insert the same record, which is already inserted, then you will encounter problems.

    Let me show what happens when you use an initial charge because it makes it easier to describe:
    We start at 10:00 the capture for a table. Now, you insert a record at 10:00 in the tables. When you now start an initial charge to 10.02, then check you have inserted in the database to 10.01 will be repeated two times. During the IPL as the initial charge is made to 10.02 and it includes data of 10.01 AND it will be replicated again through the process of capture/replicate.

  • Difference of path between primary key and a Unique Index

    Hi all

    Is there a specific way the oracle optimizer to treat differently the Primary key and Unique index?

    Oracle Version
    SQL> select * from v$version;
    
    BANNER
    --------------------------------------------------------------------------------
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    PL/SQL Release 11.2.0.3.0 - Production
    CORE    11.2.0.3.0      Production
    TNS for IBM/AIX RISC System/6000: Version 11.2.0.3.0 - Production
    NLSRTL Version 11.2.0.3.0 - Production
    
    SQL> 
    Sample data test for Index Normal
    SQL> create table t_test_tab(col1 number, col2 number, col3 varchar2(12));
    
    Table created.
    
    SQL> create sequence seq_t_test_tab start with 1 increment by 1 ;
    
    Sequence created.
    
    SQL>  insert into t_test_tab select seq_t_test_tab.nextval, round(dbms_random.value(1,999)) , 'B'||round(dbms_random.value(1,50))||'A' from dual connect by level < 100000;
    
    99999 rows created.
    
    SQL> commit;
    
    Commit complete.
    
    SQL> exec dbms_stats.gather_table_stats(USER_OWNER','T_TEST_TAB',cascade => true);
    
    PL/SQL procedure successfully completed.
    
    SQL> select col1 from t_test_tab;
    
    99999 rows selected.
    
    
    Execution Plan
    ----------------------------------------------------------
    Plan hash value: 1565504962
    
    --------------------------------------------------------------------------------
    | Id  | Operation         | Name       | Rows  | Bytes | Cost (%CPU)| Time     |
    --------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT  |            | 99999 |   488K|    74   (3)| 00:00:01 |
    |   1 |  TABLE ACCESS FULL| T_TEST_TAB | 99999 |   488K|    74   (3)| 00:00:01 |
    --------------------------------------------------------------------------------
    
    
    Statistics
    ----------------------------------------------------------
              1  recursive calls
              0  db block gets
           6915  consistent gets
            259  physical reads
              0  redo size
        1829388  bytes sent via SQL*Net to client
          73850  bytes received via SQL*Net from client
           6668  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
          99999  rows processed
    
    SQL> create index idx_t_test_tab on t_test_tab(col1);
    
    Index created.
    
    SQL> exec dbms_stats.gather_table_stats('USER_OWNER','T_TEST_TAB',cascade => true); 
    
    PL/SQL procedure successfully completed.
    
    SQL> select col1 from t_test_tab;
    
    99999 rows selected.
    
    
    Execution Plan
    ----------------------------------------------------------
    Plan hash value: 1565504962
    
    --------------------------------------------------------------------------------
    | Id  | Operation         | Name       | Rows  | Bytes | Cost (%CPU)| Time     |
    --------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT  |            | 99999 |   488K|    74   (3)| 00:00:01 |
    |   1 |  TABLE ACCESS FULL| T_TEST_TAB | 99999 |   488K|    74   (3)| 00:00:01 |
    --------------------------------------------------------------------------------
    
    
    Statistics
    ----------------------------------------------------------
              1  recursive calls
              0  db block gets
           6915  consistent gets
              0  physical reads
              0  redo size
        1829388  bytes sent via SQL*Net to client
          73850  bytes received via SQL*Net from client
           6668  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
          99999  rows processed
    
    SQL> 
    Examples of test when using primary key data
    SQL> create table t_test_tab1(col1 number, col2 number, col3 varchar2(12));
    
    Table created.
    
    SQL> create sequence seq_t_test_tab1 start with 1 increment by 1 ;
    
    Sequence created.
    
    SQL> insert into t_test_tab1 select seq_t_test_tab1.nextval, round(dbms_random.value(1,999)) , 'B'||round(dbms_random.value(1,50))||'A' from dual connect by level < 100000;
     
    99999 rows created.
    
    SQL> commit;
    
    Commit complete.
    
    SQL> exec dbms_stats.gather_table_stats('USER_OWNER','T_TEST_TAB1',cascade => true);
    
    PL/SQL procedure successfully completed.
    
    SQL> select col1 from t_test_tab1;
    
    99999 rows selected.
    
    
    Execution Plan
    ----------------------------------------------------------
    Plan hash value: 1727568366
    
    ---------------------------------------------------------------------------------
    | Id  | Operation         | Name        | Rows  | Bytes | Cost (%CPU)| Time     |
    ---------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT  |             | 99999 |   488K|    74   (3)| 00:00:01 |
    |   1 |  TABLE ACCESS FULL| T_TEST_TAB1 | 99999 |   488K|    74   (3)| 00:00:01 |
    ---------------------------------------------------------------------------------
    
    
    Statistics
    ----------------------------------------------------------
              1  recursive calls
              0  db block gets
           6915  consistent gets
              0  physical reads
              0  redo size
        1829388  bytes sent via SQL*Net to client
          73850  bytes received via SQL*Net from client
           6668  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
          99999  rows processed
    
    SQL> alter table t_test_tab1 add constraint pk_t_test_tab1 primary key (col1);
    
    Table altered.
    
    SQL> exec dbms_stats.gather_table_stats('USER_OWNER','T_TEST_TAB1',cascade => true); 
    
    PL/SQL procedure successfully completed.
    
    SQL> select col1 from t_test_tab1;
    
    99999 rows selected.
    
    
    Execution Plan
    ----------------------------------------------------------
    Plan hash value: 2995826579
    
    ---------------------------------------------------------------------------------------
    | Id  | Operation            | Name           | Rows  | Bytes | Cost (%CPU)| Time     |
    ---------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT     |                | 99999 |   488K|    59   (2)| 00:00:01 |
    |   1 |  INDEX FAST FULL SCAN| PK_T_TEST_TAB1 | 99999 |   488K|    59   (2)| 00:00:01 |
    ---------------------------------------------------------------------------------------
    
    
    Statistics
    ----------------------------------------------------------
              1  recursive calls
              0  db block gets
           6867  consistent gets
              0  physical reads
              0  redo size
        1829388  bytes sent via SQL*Net to client
          73850  bytes received via SQL*Net from client
           6668  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
          99999  rows processed
    
    SQL> 
    If you see here the same even as the statistics were gathered,
    * In the 1st table T_TEST_TAB, table always use FULL table access after creating indexes.
    * And in the 2nd table T_TEST_TAB1, table uses PRIMARY KEY as expected.

    Any comments?

    Kind regards
    BPat

    >
    * In the 1st table T_TEST_TAB, table always use FULL table access after creating indexes.
    * And in the 2nd table T_TEST_TAB1, table uses PRIMARY KEY as expected.
    >
    Yes - for the first table a full table scan will be used as the currently selected column is nullable and indexes do not include null values.

    The index can be used for the second query, since all the data (first column) is available between the index and there may be no NULL values because of the primary key. If you check constraints, you find that the there is now a CHECK constraint to ensure that the first column cannot be null.

    For a full and interesting discussion see the explanation of this and a related issue on the question I ask in this thread
    What SYS tables (not seen) contain the value NULL spec /not/ column definition? and my response he posted: 23 April 2012 09:02

    I ask the question is based on a question here which is similar to yours
    Columns becoming nullable after a fall of primary key?

  • Creation of primary keys, foreign keys and indexes

    Hello

    I created 60 new tables based on 60 existing tables.

    The 60 current tables are named FY11_ACC1, FY11_ACC2, FY11_SALES1, FY11_SALES2..., but all of the 60 tables start with FY11. I created the same structured tables but with names like FY12_ACC1, FY12_ACC2, FY12_SALES1, FY12_SALES2 FY12...

    I used the below SQL and generated SQL code.

    Select 'create table ' | Replace (table_name, 11, 12).
    ' in select * from '. table_name | "where 1 = 0'.
    from user_tables;

    But this did not generate the PRIMARY KEYS, FOREIGN KEYS and INDEXES. How can I automatically or with similar like SQL above? _

    Thanks for your time and your help.







    How can I create primary keys, foreign keys and indexes for all

    ssk1974 wrote:
    Can you please provide me with more information or examples.

    Something like:

    SET SERVEROUTPUT ON FORMAT WORD
    DECLARE
        h   NUMBER;
        th  NUMBER;
        ddl CLOB;
    BEGIN
        h := DBMS_METADATA.OPEN('TABLE_EXPORT');
        DBMS_METADATA.SET_FILTER(h,'SCHEMA','SCOTT');
        DBMS_METADATA.SET_FILTER(h,'NAME','DEPT');
        DBMS_METADATA.SET_FILTER(h,'EXCLUDE_PATH_EXPR','=''TABLE_DATA''');
        DBMS_METADATA.SET_FILTER(h,'EXCLUDE_PATH_EXPR','=''STATISTICS''');
        th := DBMS_METADATA.ADD_TRANSFORM(h,'DDL');
        DBMS_METADATA.SET_TRANSFORM_PARAM(th,'PRETTY',false);
        DBMS_METADATA.SET_TRANSFORM_PARAM(th,'SQLTERMINATOR',true);
        LOOP
          ddl := DBMS_METADATA.FETCH_CLOB(h);
          EXIT WHEN DDL IS NULL;
          DBMS_OUTPUT.PUT_LINE (ddl);
        END LOOP;
        DBMS_METADATA.CLOSE(h);
    END;
    /
    
      CREATE TABLE "SCOTT"."DEPT" ("DEPTNO" NUMBER(2,0), "DNAME" VARCHAR2(14),
    "LOC" VARCHAR2(13),  CONSTRAINT "PK_DEPT" PRIMARY KEY ("DEPTNO") USING INDEX
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS  STORAGE(INITIAL 65536
    NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1
    FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE
    DEFAULT) TABLESPACE "USERS"  ENABLE) SEGMENT CREATION IMMEDIATE PCTFREE 10
    PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 65536 NEXT
    1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST
    GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "USERS" ;
    
      CREATE UNIQUE INDEX "SCOTT"."PK_DEPT" ON "SCOTT"."DEPT" ("DEPTNO") PCTFREE 10
    INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS  STORAGE(INITIAL 65536 NEXT 1048576
    MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE
    "USERS" ;
    
      ALTER TABLE "SCOTT"."DEPT" ADD CONSTRAINT "PK_DEPT" PRIMARY KEY ("DEPTNO")
    USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE
    DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS"  ENABLE;
    
    PL/SQL procedure successfully completed.
    
    SQL>  
    

    SY.

    Published by: Solomon Yakobson January 5, 2012 16:22

Maybe you are looking for

  • Multi airports network problem

    I have an acting express airport as my internet gateway / firewall/router for 5 other airports that are each the clipping value. It works fine for a while but on a regular basis one or more additional airports gets 'out of sync' and needs to be reset

  • Why Fifefox 9 using cpu so much? in my case amd amd athlon x 2 255 3.11 gh use 60%?

    The CPU usage is about 50-60% with two open pages.

  • Installation of Microsoft updates

    Can you please explain why it is that the regular updates, which are essential to the good health of a pc, seem to use all my space on the drive 'C '.  Is it not possible to install a plant replace in your updates so that as a new one is mounted, is

  • Uninstall a plugin program

    I am an avid baseball fan and have been watching the games on my laptop via TV MLB until very recently.   I downloaded a plug-in called NexDef.  Since then, I watch is no longer the games as before.   The games are herky jerky and start and stop all

  • error code: 0 x 80070241

    Hey, im running windows xp pro sp3 and im trying to install windows Vista premium edition. at walmart, when I load the disc and go to install, when his copy of the files at level 5-40% evil get an error saying. Windows cannot copy files required for