ENABLE NOVALIDATE

Hi ALL,
I have a table app_news_likee.
Column Name     ID     Pk     Null?     Data Type     Default     Histogram     Encryption Alg     Salt
TITLE     1          Y     VARCHAR2 (2000 Char)          Yes          
CONTENT     2          Y     VARCHAR2 (2000 Byte)          Yes          
START_DATE     3          Y     DATE          Yes          
END_DATE     4          Y     DATE          Yes          
CREATED_BY     5          Y     VARCHAR2 (8 Byte)          Yes          
CREATED_TS     6          Y     DATE          Yes          
NEWS_LINK     7          Y     VARCHAR2 (100 Byte)          Yes          
NEWS_URL     8          Y     VARCHAR2 (256 Byte)          Yes          
BANNER     9          Y     CHAR (1 Byte)          Yes     
I would like to modify the column BANNER to varchar2(1BYTE) instead of CHAR (1 Byte) without affecting the existing records.
I tried
alter table app_news_likee modify BANNER VARCHAR2(1BYTE) ENABLE NOVALIDATE;
It errored out saying : missing keyword
Am I missing something here?
Appreciate your help!
Thanks in advance!
BM

your constraint modification should be seperate from your column modification:
SQL> create table xyz (
  2  banner char(1) ,
  3  constraint check_xyz check (banner in ('X','Y','Z'))
  4  )
  5  /
Table created.
SQL>
SQL>
SQL> alter table xyz modify BANNER VARCHAR2(1)
  2  /
Table altered.
SQL>
SQL> alter table xyz modify constraints check_xyz enable novalidate
  2  /
Table altered.Edited by: bluefrog on Mar 4, 2010 3:06 PM

Similar Messages

  • Trying to implement a ENABLE NOVALIDATE constraint.....

    Hi ,
    In order to see how the ENABLE NOVALIDATE constraint in the DEPT table of SCOTT schema , i followed the following steps:
    1)Disable state
    SQL> alter table dept modify constraint pk_dept disable;
    Table altered2)Perform the operation (insert a row in for which the deptno preexists )
    SQL> insert into dept(deptno,dname) values(10,'dname10');
    1 row inserted
    SQL> commit;
    Commit complete3)Enable novalidate state
    SQL> alter table dept modify constraint pk_dept novalidate;
    Table altered4)Enable state
    SQL> alter table dept modify constraint pk_dept enable;
    alter table dept modify constraint pk_dept enable
    ORA-02437:cannot validate (SCOTT.PK_DEPT) - primary key violatedHow can i solve the problem.....?????
    Many thanks,
    Simon

    Hi,
    I haven't found any use of the NOVALIDATE parameter in the constraint.....
    In Oracle doc ... it's pointed out:
    "When a constraint is in the enable novalidate state, all subsequent statements are checked for conformity to the constraint. However, any existing data in the table is not checked. A table with enable novalidated constraints can contain invalid data, but it is not possible to add new invalid data to it. Enabling constraints in the novalidated state is most useful in data warehouse configurations that are uploading valid OLTP data.
    Enabling a constraint does not require validation. Enabling a constraint novalidate is much faster than enabling and validating a constraint. Also, validating a constraint that is already enabled does not require any DML locks during validation (unlike validating a previously disabled constraint). Enforcement guarantees that no violations are introduced during the validation. Hence, enabling without validating enables you to reduce the downtime typically associated with enabling a constraint."
    I have followed the steps in my first post to run a test case in order to see that the sentence above in bold, is implemented....
    But an error is displayed.....
    What should i have to do......????
    Many thanks ,
    Simon

  • Enable Novalidate a table constraint

    I created a table with a unique constraint on one column DISABLED. I then proceeded to insert duplicate data in this field. When I try to ENABLE NOVALIDATE this constraint, I get the error ORA-02299: cannot validate (SCOTT.SARAH_U) - duplicate keys found. With the NOVALIDATE option, shouldn't it ignore existing records?
    My statement was: alter table sarah enable novalidate unique (cd);
    It seems as if the "novalidate" keyword is not being read.
    Thanks for any help.

    The syntax is:
    SQL> ALTER TABLE scott.sarah_u MODIFY CONSTRAINT <constraint_name> ENABLE NOVALIDATE;
    Hope this helps!
    Rob
    I created a table with a unique constraint on one column DISABLED. I then proceeded to insert duplicate data in this field. When I try to ENABLE NOVALIDATE this constraint, I get the error ORA-02299: cannot validate (SCOTT.SARAH_U) - duplicate keys found. With the NOVALIDATE option, shouldn't it ignore existing records?
    My statement was: alter table sarah enable novalidate unique (cd);
    It seems as if the "novalidate" keyword is not being read.
    Thanks for any help.

  • ENABLE NOVALIDATE CONSTRAINT SYNTAX

    Hi,
    I have a table it's called loadsurvey which having some duplicate records. I would like to implement unique constraint on my table using following command which should not allow any new duplicate record into table and do not wants to validate existing record.
    ALTER TABLE LOADSURVEY ADD ENABLE NOVALIDATE
    CONSTRAINT LOAD_UNIQUE_CONS UNIQUE (METERNO,DAT,TIM);
    SQL COMMAND WINDOWS SHOWS "ORA-01735: INVALID ALTER TABLE OPTION"
    Any help me to come out the problem.
    Regards,
    Saravanan.

    The syntax is
    alter table .... add constraint ... (<column>) enable novalidate;
    Please try to avoid using all uppercase for the subject line.
    You don't need to shout.
    Sybrand Bakker
    Senior Oracle DBA

  • Doubt on ENABLE VALIDATE and ENABLE NOVALIDATE?

    Hi,
    I am doing the following things:
    SQL> create table xx_con(col1 number);
    Table created.
    SQL> insert into xx_con values(1);
    1 row created.
    SQL> insert into xx_con values(1);
    1 row created.
    SQL> insert into xx_con values(2);
    1 row created.
    SQL> alter table xx_con add constraint col1_uk unique(col1) enable validate;
    alter table xx_con add constraint col1_uk unique(col1) enable validate
    ERROR at line 1:
    ORA-02299: cannot validate (APPS.COL1_UK) - duplicate keys foundThis is exactly the same as the previous one.As per the documentation,when we specify "ENABLE VALIDATE" , all the existing and new data should comply with the constraint.But since the data violates the constraint,the constraint is not created .
    SQL> drop table xx_con;
    Table dropped.
    SQL> create table xx_con(col1 number);
    Table created.
    SQL> insert into xx_con values(1);
    1 row created.
    SQL> insert into xx_con values(1);
    1 row created.
    SQL> insert into xx_con values(2);
    1 row created.
    SQL> alter table xx_con add constraint col1_uk unique(col1) enable novalidate;
    alter table xx_con add constraint col1_uk unique(col1) enable novalidate
    ERROR at line 1:
    ORA-02299: cannot validate (APPS.COL1_UK) - duplicate keys foundAs per the documentation,when we specify "ENABLE NOVALIDATE", all the DML operations performed after this should comply with the constraint.But there can be existing data which voilates the constraint.If this is the case then why it is erroring out?
    please clarify this.

    Davide:
    By default, when you create a unique constraint, Oracle creates a unique index to enforce the constraint. In this case, duplicates are not allowed in the index itself.
    SQL> CREATE TABLE t (id number, descr VARCHAR2(10));
    Table created.
    SQL> ALTER TABLE t ADD CONSTRAINT t_unq UNIQUE (id);
    Table altered.
    SQL> SELECT index_name, uniqueness FROM user_indexes
      2  WHERE table_name = 'T';
    INDEX_NAME                     UNIQUENES
    T_UNQ                          UNIQUE
    SQL> SELECT constraint_name, constraint_type FROM user_constraints
      2  WHERE table_name = 'T';
    CONSTRAINT_NAME                C
    T_UNQ                          USince Oracle can and will use an existing index to enforce a unique constraint, when you pre-create the index as non-unique, it will be used to enforce the constraint. Since the index itself is not unique, duplicates are allowed in it.
    Note that a unique index by itself does not imply a unique constraint on the table.
    SQL> ALTER TABLE t DROP CONSTRAINT t_unq;
    Table altered.
    SQL> CREATE UNIQUE INDEX t_unq ON t(id);
    Index created.
    SQL> SELECT index_name, uniqueness FROM user_indexes
      2  WHERE table_name = 'T';
    INDEX_NAME                     UNIQUENES
    T_UNQ                          UNIQUE
    SQL> SELECT constraint_name, constraint_type FROM user_constraints
      2  WHERE table_name = 'T';
    no rows selectedSo, in a sense, with a unique index, it is the index itself which is constrained unique, not the table,
    HTH
    John

  • Questions on ENABLE NOVALIDATE a constraint

    I run the command on Oracle 11.2.0.1 on Redhat 5.2SQL> alter table agency add constraint agency_agcy_ori unique (agcy_ori) ENABLE NOVALIDATE;
    alter table agency add constraint agency_agcy_ori unique (agcy_ori) ENABLE NOVALIDATE
    ERROR at line 1:
    ORA-02299: cannot validate (DEVPF.AGENCY_AGCY_ORI) - duplicate keys found I knew the table has duplicate and null in the column which I want to add unique constraint. Using NOVALIDATE, I expect it tolarates the exist duplicate and valid new added data for uniqueness. Because it is stated in Oracle DOc B28286 that (page 8-15) ENABLE NOVALIDATE ensures that all new DML operations on the constrained
    data comply with the constraint. This clause does not ensure that existing data in
    the table complies with the constraintHowever, my database does not agree with this. Did I misunderstood the doc?
    Other related questions
    1) I have two rows with the column agcy_ori is NULL. Would that be considered duplicate and fails VALIDATE when create a unique constraint.
    2) The same doc also states (page 8-16) DISABLE VALIDATE disables the constraint and drops the index on the constraint,
    but keeps the constraint valid. This feature is most useful in data warehousing
    situations, because it lets you load large amounts of data while also saving space
    by not having an index. This setting lets you load data from a nonpartitioned table
    into a partitioned table using the exchange_partition_clause of the ALTER
    TABLE statement or using SQL*Loader. All other modifications to the table
    (inserts, updates, and deletes) by other SQL statements are disallowedThis raises more questions:
    a) DISABLE VALIDATE an unique constraint drop the unique index but still validate uniqueness. This is saying that te uniqueness is maintained without an unique index. If that is possible, why ENABLE an unique constraint need to create an unique index?
    b) The last setense 'All other modifications to the table by other SQL statements are disallowed'. This actually make the table read only except for partition/nonpartition and SQL*LOADER. This can be a useful feature but I do not see the logic here: Cannot update column2 of the table just because a constraint in column 10 is DISABLE VALIDATE.
    Hope people can help me here. Thanks.

    Re-read the documentation on the ENABLE clause
    at http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/clauses002.htm#g1053592
    ENABLE Clause
    Specify ENABLE if you want the constraint to be applied to the data in the table.
    +If you enable a unique or primary key constraint, and if no index exists on the key, then Oracle Database creates a unique index. Unless you specify KEEP INDEX when subsequently disabling the constraint, this index is dropped and the database rebuilds the index every time the constraint is reenabled.+
    You can also avoid rebuilding the index and eliminate redundant indexes by creating new primary key and unique constraints initially disabled. Then create (or use existing) nonunique indexes to enforce the constraint. Oracle does not drop a nonunique index when the constraint is disabled, so subsequent ENABLE operations are facilitated.
    Create a non-unique Index first.
    Hemant K Chitale

  • ORA-02266: unique/primary keys in table referenced by enabled foreign keys

    Hi,
    I am trying to delete data from a table by dropping a partition. I have identified all the child tables by running the following command.
    select 'select count(*) from '||table_name||' where employee_id = 100;'
    from dba_constraints
    where constraint_type='R'
    and r_constraint_name in
    (select constraint_name from dba_constraints
    where constraint_type in ('P','U') and table_name='EMPLOYEE);
    'SELECTCOUNT(*)FROM'||TABLE_NAME||'WHEREEMPLOYEE_ID_ID=100;'
    select count(*) from PT_ORDERS where employee_id = 100;
    select count(*) from PT_DEP where employee_id = 100;
    select count(*) from PT_SKILLSET where employee_id = 100;
    I dropped the partition for employee_id 100 in all of the child tables. The select count(*) returns 0 rows for each of the above.
    When I try to run the below command on the EMPLOYEE table, I get 'ORA-02266: unique/primary keys in table referenced by enabled foreign keys'.
    alter table EMPLOYEE drop partition EMP_ID_100;
    I cant see why I am unable to drop this partition now as there is now child data in any of the referenced tables. Any suggestions or help on this would be greatly appreciated.
    Thanks.
    Rgs,
    Rob

    You should disable foreign key constraints first and drop partition. Deletion of rows or dropping partitions in childs don't work in this case
    as you have the global dependency:
    <PRE>
    SQL> create table scott.t (x int primary key, y int)
    2 partition by list (y) (
    3 partition p_1 values(1), partition p_2 values(2))
    4 /
    Table created.
    SQL> create table scott.t_c (x int references scott.t(x), y int)
    2 partition by list (y) (
    3 partition p_1 values(1), partition p_2 values(2))
    4 /
    Table created.
    SQL> insert into scott.t values(1,1)
    2 /
    1 row created.
    SQL> insert into scott.t values(2,2)
    2 /
    1 row created.
    SQL> insert into scott.t_c values(1,1)
    2 /
    1 row created.
    SQL> insert into scott.t_c values(2,2)
    2 /
    1 row created.
    SQL> commit;
    Commit complete.
    SQL> alter table scott.t_c drop partition p_2;
    Table altered.
    SQL> alter table scott.t drop partition p_2;
    alter table scott.t drop partition p_2
    ERROR at line 1:
    ORA-02266: unique/primary keys in table referenced by enabled foreign keys
    SQL> select constraint_name from dba_constraints
    2 where owner = 'SCOTT' and constraint_type = 'P'
    3 and table_name = 'T';
    CONSTRAINT_NAME
    SYS_C0011058
    SQL> select constraint_name from dba_constraints
    2 where owner = 'SCOTT' and constraint_type = 'R'
    3 and r_constraint_name = 'SYS_C0011058';
    CONSTRAINT_NAME
    SYS_C0011059
    SQL> alter table scott.t_c disable constraint SYS_C0011059;
    Table altered.
    SQL> alter table scott.t drop partition p_2;
    Table altered.
    SQL> alter table scott.t_c enable novalidate constraint SYS_C0011059;
    Table altered.
    </PRE>
    I guess you should consider such option as Referencial partitioning (with some restrictions).
    Best wishes,
    Dmitry.

  • ENABLE CONSTRAINT

    Hello All,
    version details :
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit
    OS :
    SunOS 107 5.10 Generic_125100-10 sun4u sparc SUNW,Sun-Fire-V890
    Issue :
    I have executed a PLSQL which enables all the disabled constraints in a schema....
    Enabling one constraint is taking 15 hours...this step has not take this much time previously...
    There is no blocking session in V$lock....
    The object is locked by only the current session in v$locked_object...
    I know killing and reexecuting the step might solve the issue but i want to know for sure what is blocking it before killing it......'
    Alert log shows no sign execute for redo switch.......
    the hanging statement is below,
    ALTER TABLE UC_ADDRESS_INFO_TX ENABLE CONSTRAINT FK_ADDR_INFO_ROLE_MAP_CD
    Thanks in advance
    Vijay G

    No it`s not because the same table .. the process is below,
    i take an export of production DB, I do structure import ,then i disable the constraints ,then import few required tables alone for the application then i enable the constraints and then i do an analyze . The whole process takes 5 hours now it`s been fifteen hours.
    I have done individual enable before but why is this taking time... i am going to change this into enable novalidate sort but i wnated to know why it is hanging before i do any changes.......
    Regret for the inconvenience,
    Thanks ,
    Vijay G

  • Error in enabling constraints

    Hi everybody,
    i have 2 databases d01 and d02. i have same no and same objects on both the databases.
    i am exporting data for 1 subscriber from d01 and importing into d02.during importing data to d02 first i disable all constraints of the tables in d02 then importing the data which i have exported from d01 then i am enabling the constraints in d02.
    my problem is that at the time of enabling the data i have encountered some errors as follows.
    Error while Alter Table PORTFOLIO_CRITERIA_CONDITIONS enable novalidate
    constraint XFK3PRTF_CRITERIA_CONDITIONS
    ORA-06502: PL/SQL: numeric or value error: character string buffer too small
    Error while Alter Table PORTFOLIO_CRITERIA_CONDITIONS enable novalidate
    constraint XFK3PRTF_CRITERIA_CONDITIONS
    ORA-06502: PL/SQL: numeric or value error: character string buffer too small
    Error while Alter Table PORTFOLIO_CRITERIA_CONDITIONS enable novalidate
    constraint XFK3PRTF_CRITERIA_CONDITIONS
    ORA-06502: PL/SQL: numeric or value error: character string buffer too small
    Error while Alter Table PORTFOLIO_TYPE2ATTRIBUTE enable novalidate constraint
    XFK12PORTFOLIO_TYPE2ATTRIBUTE
    ORA-06502: PL/SQL: numeric or value error: character string buffer too small
    Error while Alter Table PORTFOLIO_TYPE2ATTRIBUTE enable novalidate constraint
    XFK12PORTFOLIO_TYPE2ATTRIBUTE
    ORA-06502: PL/SQL: numeric or value error: character string buffer too small
    Error while Alter Table PORTFOLIO_TYPE2ATTRIBUTE enable novalidate constraint
    XFK12PORTFOLIO_TYPE2ATTRIBUTE
    ORA-06502: PL/SQL: numeric or value error: character string buffer too small
    Error while Alter Table PORTFOLIO_TYPE2ATTRIBUTE enable novalidate constraint
    XFK12PORTFOLIO_TYPE2ATTRIBUTE
    ORA-06502: PL/SQL: numeric or value error: character string buffer too small
    PL/SQL procedure successfully completed.
    can u please tell me what is the error.
    Thanks and regards
    Subrata

    Hallo,
    i guess, that you use dynamic sql here, something like
    declare
    v_sql varchar2(30);
    begin
    v_sql := 'Alter Table PORTFOLIO_CRITERIA_CONDITIONS enable novalidate
    constraint XFK3PRTF_CRITERIA_CONDITIONS';
    execute immediate v_sql;
    Then, you have to increase the length of v_sql. It's too small !
    Regards
    Dmytro

  • Does Oracle re-enable an already enabled constraint

    Hi All,
    If my constraints are already enabled and I issue the following enable command:
    alter table <table_name> enable constraint <constraint_name>;
    Will oracle re-enable this already enabled constraint - i.e go through the table data validating each column/columns(as teh case may be) againist the constraint rules, or it will simply do nothing since the constraint is ok?
    Thanks.

    At leats if they previsouly were enabled with novalidate Oracle WILL DEFINTELY CHECK THEM. Example:
    Connected to Oracle Database 11g Release 11.2.0.1.0
    Connected as gints
    SQL> create table t(a number);
    Table created
    SQL> insert into t values (null);
    1 row inserted
    SQL> alter table t add constraint a_nn check(a IS NOT NULL) enable novalidate;
    Table altered
    SQL> alter table t enable constraint a_nn;
    alter table t enable constraint a_nn
    ORA-02293: cannot validate (GINTS.A_NN) - check constraint violated
    SQL> Gints Plivna
    http://www.gplivna.eu

  • Constraint Enable

    Hi All,
    I have created a table like this
    CREATE TABLE table2(a NUMBER CONSTRAINT a_pk PRIMARY KEY);
    INSERT INTO table2 VALUES(1);
    INSERT INTO table2 VALUES(2);
    After that i disabled the primary key like this
    ALTER TABLE table2 DISABLE CONSTRAINT a_PK;
    Then i inserted duplicate values
    INSERT INTO table2 VALUES(1);
    INSERT INTO table2 VALUES(1);
    Now i want to restrict duplicate values in to that column.
    for that i have used
    ALTER TABLE pt MODIFY CONSTRAINT pt_apk ENABLE NOVALIDATE
    cannot validate (RAMESH.a_pk) - primary key violated.
    How can we enable the key.
    Please help me.
    Thanks in advance

    user9077483 wrote:
    How can we enable the key.The reason it fails - PK is enforced by unique key. So even though you say novalidate existing data and validate new data only, unique key is not capable of that - it fails any duplicate new or old. In order to take advantage of NOVALIDATE you must implement PK via non-unique index:
    SQL> CREATE TABLE table2(a NUMBER)
      2  /
    Table created.
    SQL> CREATE INDEX a_PK on table2(a)
      2  /
    Index created.
    SQL> ALTER TABLE table2
      2    ADD CONSTRAINT a_PK
      3      PRIMARY KEY(a)
      4      USING INDEX a_PK
      5  /
    Table altered.
    SQL> INSERT INTO table2 VALUES(1);
    1 row created.
    SQL> INSERT INTO table2 VALUES(2);
    1 row created.
    SQL> ALTER TABLE table2 DISABLE CONSTRAINT a_PK;
    Table altered.
    SQL> INSERT INTO table2 VALUES(1);
    1 row created.
    SQL> INSERT INTO table2 VALUES(1);
    1 row created.
    SQL> ALTER TABLE table2 MODIFY CONSTRAINT a_PK ENABLE NOVALIDATE
      2  /
    Table altered.
    SQL> select * from table2
      2  /
             A
             1
             2
             1
             1
    SQL> INSERT INTO table2 VALUES(1);
    INSERT INTO table2 VALUES(1)
    ERROR at line 1:
    ORA-00001: unique constraint (SCOTT.A_PK) violated
    SQL> As you can see, non-unique index allows us to ignore existing duplicates but rejects new ones.
    SY.

  • Speeding up enable of constraints

    I have various constraints that used to take seconds and now are taking up to half an hr to enable. The data in the tables is static, it has increased or decreased. Does anyone know how to speed up the enabling of constraints on a table? What goes on behind the scenes after issuing alter table <table_name> enable constraint <constraint_name>;
    Thankis

    Dear HouseofHunger,
    Please tell me if that online documentation is enough for you or not?
    http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/statements_3001.htm#i2183600
    +"+
    +Restrictions on Modifying Constraints Modifying constraints is subject to the following restrictions:+
    +*You cannot change the state of a NOT DEFERRABLE constraint to INITIALLY DEFERRED.+
    +*If you specify this clause for an index-organized table, then you cannot specify any other clauses in the same statement.+
    +*You cannot change the NOT NULL constraint on a foreign key column of a reference-partitioned table, and you cannot change the state of a partitioning referential constraint of a reference-partitioned table.+
    +See Also:+
    +"*Changing the State of a Constraint: Examples*"+
    +"+
    +"+
    +Changing the State of a Constraint: Examples The following statement places in ENABLE VALIDATE state an integrity constraint named emp_manager_fk in the employees table:+
    +ALTER TABLE employees+
    +ENABLE VALIDATE CONSTRAINT emp_manager_fk+
    +EXCEPTIONS INTO exceptions;+
    +Each row of the employees table must satisfy the constraint for Oracle Database to enable the constraint. If any row violates the constraint, then the constraint remains disabled. The database lists any exceptions in the table exceptions. You can also identify the exceptions in the employees table with the following statement:+
    +SELECT e.*+
    +FROM employees e, exceptions ex+
    +WHERE e.rowid = ex.row_id+
    +AND ex.table_name = 'EMPLOYEES'+
    +AND ex.constraint = 'EMP_MANAGER_FK';+
    +The following statement tries to place in ENABLE NOVALIDATE state two constraints on the employees table:+
    +ALTER TABLE employees+
    +ENABLE NOVALIDATE PRIMARY KEY+
    +ENABLE NOVALIDATE CONSTRAINT emp_last_name_nn;+
    +This statement has two ENABLE clauses:+
    +*The first places a primary key constraint on the table in ENABLE NOVALIDATE state.+
    +*The second places the constraint named emp_last_name_nn in ENABLE NOVALIDATE state.+
    +In this case, Oracle Database enables the constraints only if both are satisfied by each row in the table. If any row violates either constraint, then the database returns an error and both constraints remain disabled.+
    +Consider the foreign key constraint on the location_id column of the departments table, which references the primary key of the locations table. The following statement disables the primary key of the locations table:+
    +ALTER TABLE locations+
    +MODIFY PRIMARY KEY DISABLE CASCADE;+
    +The unique key in the locations table is referenced by the foreign key in the departments table, so you must specify CASCADE to disable the primary key. This clause disables the foreign key as well.+
    +"+
    Hope That Helps.
    Ogan

  • Issue with enabling constraint

    Hi,
    I am trying to enable a constraint on a table using below statement.
    alter table <table_name> enable constraint <constraint_name>;
    But this statement is hanging for ever....
    Can you please help me on this issue.
    Can I use NOVALIDATE? pls let me know how to use it.
    Thanks.

    plz try this ..
    alter table <table_name> modify constraint <constraint_name>  enable NOVALIDATE;

  • Updates on a specific COLUMN is not generating a BEFORE or AFTER value ...

    I have a table SCHEMA_OWNER.RX_TX table that has 182 columns. Here is the extract param file. Also on this table i have enabled ALL COLUMNS to be supplimental logged via "alter table SCHEMA_OWNER.RX_TX add supplemental log data (all) columns". The table has a PK on the "ID" column. Please note that the POS_REFUND_DATE column in the table SCHEMA_OWNER.RX_TX is 178th column.
    When i execute the following UPDATE followed by a COMMIT, when the current value of POS_REFUND_DATE=NULL, i do not see TRAIL records getting created in the trail file.
    SQL>Update Eps2_Kp_900001058.Rx_Tx Set Pos_Refund_Date=Pos_Refund_Date Where Tx_Number=1014524 And Nhin_Store_Id=900001058 And Id=4575035;
    SQL>COMMIT;
    NOTE: If POS_REFUND_DATE is NOT NULL, before the above UPDATE is executed, then TRAIL RECORDS (i.e. before and after trail records) are successfully created.
    Here is param file for the EXTRACT=EXTPROD
    EXTRACT EXTPROD
    SETENV (ORACLE_SID = "opepsd2")
    SETENV (ORACLE_HOME = "/u01/app/oradev/product/11.2.0.3/db_1")
    SETENV (NLS_LANG="AMERICAN_AMERICA.WE8MSWIN1252")
    USERID ogguser, PASSWORD AACAAAAAAAAAAAKAJISJVHPCJAEJKJIHWHVCXHQIWIZEUCJF, ENCRYPTKEY DEFAULT
    EXTTRAIL /u02/ggoppr/trail/SP
    TRANLOGOPTIONS DBLOGREADER
    CACHEMGR CACHEBUFFERSIZE 64KB, CACHESIZE 2GB, CACHEDIRECTORY ./dirtmp
    GETUPDATEBEFORES
    NOCOMPRESSDELETES
    NOCOMPRESSUPDATES
    STATOPTIONS RESETREPORTSTATS
    REPORT AT 00:01
    REPORTROLLOVER AT 00:01
    REPORTCOUNT EVERY 60 SECONDS, RATE
    WARNLONGTRANS 2 HOURS
    TABLE EPS2_KP_900001058.RX_TX , COLS (ID,NHIN_STORE_ID,POS_SOLD_DATE,LAST_DML_BY_CONVERSION_DATE,RETURNED_DATE,POS_REFUND_DATE,UNSELL_DATE,ADMIN_REBILLED_DATE,PARTIAL_FILL_STATUS) , TOKENS ( NHIN_STORE_ID = "900001058" );
    Here are some usefull output from GGSCI:
    GGSCI (szabdb32) 4> dblogin userid ogguser , password ogguser123
    Successfully logged into database.
    GGSCI (szabdb32) 5> info all
    Program Status Group Lag Time Since Chkpt
    MANAGER RUNNING
    EXTRACT RUNNING EXTDEV2 00:00:00 00:00:07
    Description EPS Extract
    EXTRACT RUNNING EXTPROD 00:00:00 00:00:04
    EXTRACT RUNNING EXTSALE 00:00:00 00:00:04
    EXTRACT RUNNING EXTTEST 00:00:00 00:00:04
    EXTRACT RUNNING PMPDEV2 00:00:00 00:00:02
    EXTRACT RUNNING PMPPROD 00:00:00 00:00:01
    EXTRACT RUNNING PMPSALE 00:00:00 00:00:05
    EXTRACT RUNNING PMPTEST 00:00:00 00:00:05
    EXTRACT RUNNING RPMPDEV2 00:00:00 00:00:06
    Here is the DDL structure of the table object "EPS2_KP_900001058.RX_TX" (vERY LONg)
    CREATE TABLE "EPS2_KP_900001058"."RX_TX"
    ( "ID" NUMBER(38,0) NOT NULL ENABLE,
    "NHIN_STORE_ID" NUMBER(10,0) NOT NULL ENABLE,
    "DELETED" VARCHAR2(1 BYTE),
    "BRAND_ACQUISITION_COST" NUMBER(13,2),
    "AUTO_COUNTING_SYSTEM_PRIORITY" VARCHAR2(1 BYTE),
    "CHARGE" VARCHAR2(1 BYTE),
    "COMPOUND_FEE" NUMBER(13,2),
    "BASE_COST" NUMBER(13,2),
    "COUNSELING_CHOICE" VARCHAR2(1 BYTE),
    "NCPDP_DAW" VARCHAR2(1 BYTE),
    "FILL_QUANTITY" NUMBER(13,4),
    "BRAND_DISCOUNT" NUMBER(13,2),
    "DRUG_EXPIRATION_DATE" DATE,
    "FILL_DATE" DATE,
    "PICKED_UP" VARCHAR2(1 BYTE),
    "HOST_RETRIEVAL_DATE" DATE,
    "MANUFACTURER" VARCHAR2(10 BYTE),
    "SAFETY_CAP_FLAG" VARCHAR2(1 BYTE),
    "PAC_MED" VARCHAR2(1 BYTE),
    "REFILL_NUMBER" NUMBER(5,0),
    "REPORTABLE_SALES_DATE" DATE,
    "FILL_STATUS" VARCHAR2(1 BYTE),
    "TAX_AMOUNT" NUMBER(13,2),
    "TP_BILL" VARCHAR2(1 BYTE),
    "UC_PRICE" NUMBER(13,2),
    "UP_CHARGE" NUMBER(13,2),
    "USUAL" VARCHAR2(1 BYTE),
    "DAYS_SUPPLY" NUMBER(10,0),
    "DRUG_SCHEDULE" VARCHAR2(1 BYTE),
    "DAYS_SUPPLY_BASIS" VARCHAR2(1 BYTE),
    "FOLLOW_UP_DATE" DATE,
    "GROUP_ON_RX" VARCHAR2(3 BYTE),
    "ICD9" VARCHAR2(7 BYTE),
    "ICD9_TYPE" VARCHAR2(1 BYTE),
    "NUM_LABELS" NUMBER(3,0),
    "OWED" NUMBER(13,4),
    "PRESCRIBED_QUANTITY" NUMBER(13,4),
    "STOP_DATE" DATE,
    "WRITTEN_DATE" DATE,
    "DISPENSED_DRUG_NDC" VARCHAR2(11 BYTE),
    "LANG" VARCHAR2(2 BYTE) NOT NULL ENABLE,
    "SIG_PER_DAY" NUMBER(13,4),
    "SIG_PER_DOSE" NUMBER(13,4),
    "SIG_TEXT" VARCHAR2(515 BYTE),
    "REFILL_SOURCE" NUMBER(5,0),
    "TX_DELETED" VARCHAR2(1 BYTE),
    "TX_NUMBER" NUMBER(12,0),
    "CENTRAL_FILL_CUTOFF_DATE" DATE,
    "BRAND_PRICE" NUMBER(13,2),
    "GENERIC_PRICE" NUMBER(13,2),
    "DRUG_DISPENSED" VARCHAR2(1 BYTE),
    "POS_STATUS" VARCHAR2(1 BYTE),
    "POS_INVOICE_NUMBER" NUMBER(35,0),
    "CASHIER_NAME" VARCHAR2(28 BYTE),
    "REGISTER_NUM" VARCHAR2(20 BYTE),
    "POS_OVERRIDDEN_NET_PAID" NUMBER(13,2),
    "POS_REASON_FOR_VOID" VARCHAR2(120 BYTE),
    "RX_STOLEN" VARCHAR2(1 BYTE),
    "POS_BARCODE_NUM" NUMBER(20,0),
    "RETURNED_DATE" DATE,
    "RX_CREDIT_INITIATOR" VARCHAR2(1 BYTE),
    "ORIGINAL_QTY" NUMBER(13,4),
    "ORIGINAL_PRICE" NUMBER(13,2),
    "OLD_RX_TX_ID" NUMBER(38,0),
    "NEW_RX_TX_ID" NUMBER(38,0),
    "PATIENT_DISEASE_ID" NUMBER(38,0),
    "PRICE_CODE_ID" NUMBER(38,0),
    "TAX_ID" NUMBER(38,0),
    "COMPOUND_ID" NUMBER(38,0),
    "DRUG_BRAND_ID" NUMBER(38,0),
    "DRUG_GENERIC_ID" NUMBER(38,0),
    "REFERENCE_BRAND_ID" NUMBER(38,0),
    "KEEP_SAME_DRUG" VARCHAR2(1 BYTE),
    "DIFFERENT_GENERIC" VARCHAR2(1 BYTE),
    "RX_SUMMARY_ID" NUMBER(38,0),
    "PRESCRIBER_CLINIC_LINK_ID" NUMBER(38,0),
    "SUPV_PRESCRIBER_CLINIC_LINK_ID" NUMBER(38,0),
    "DRUG_COST_TYPE_ID" NUMBER(38,0),
    "BASECOST_ID" NUMBER(38,0),
    "REQUESTED_PRICE_TO_QTY" NUMBER(13,2),
    "OVERRIDDEN_PRICE_AMOUNT" NUMBER(13,2),
    "PRICE_OVERRIDE_REASON" VARCHAR2(1 BYTE),
    "PRICE_OVERRIDE_NOTE_ID" NUMBER(38,0),
    "GENERIC_ACQUISITION_COST" NUMBER(13,2),
    "GENERIC_DISCOUNT" NUMBER(13,2),
    "PROFESSIONAL_FEE" NUMBER(13,2),
    "NO_SALES_TAX" VARCHAR2(1 BYTE),
    "COMPETITIVE_PRICED" VARCHAR2(1 BYTE),
    "USING_PERCENT_OF_BRAND" VARCHAR2(1 BYTE),
    "USING_COMPOUND_PLAN_PRICING" VARCHAR2(1 BYTE),
    "ALLOW_PRICE_OVERRIDE" VARCHAR2(1 BYTE),
    "POS_SOLD_DATE" DATE,
    "FILL_LOCATION" VARCHAR2(1 BYTE),
    "NOTES" VARCHAR2(2000 BYTE),
    "DRUG_IMAGE_KEY" VARCHAR2(255 BYTE),
    "BRAND_MANUALLY_SELECTED" VARCHAR2(1 BYTE),
    "GENERIC_MANUALLY_SELECTED" VARCHAR2(1 BYTE),
    "TX_STATUS" VARCHAR2(1 BYTE),
    "RETURNED_USER_ID" NUMBER(38,0),
    "DE_INITIALS" VARCHAR2(3 BYTE),
    "DV_INITIALS" VARCHAR2(3 BYTE),
    "PV_INITIALS" VARCHAR2(3 BYTE),
    "OVERRIDE_USER_ID" NUMBER(38,0),
    "PARTIAL_FILL_STATUS" VARCHAR2(1 BYTE),
    "PARTIAL_FILL_BILLING_TYPE" VARCHAR2(1 BYTE),
    "INTENDED_QUANTITY" NUMBER(13,4),
    "PATIENT_REQUESTED_PRICE" VARCHAR2(1 BYTE),
    "MISSING_DATE" DATE,
    "REPLACE_DATE" DATE,
    "RETURN_TO_STOCK_DATE" DATE,
    "RX_COM_DOWN" VARCHAR2(1 BYTE),
    "RPH_NAME_OF_RECORD" VARCHAR2(60 BYTE),
    "CUSTOM_SIG" VARCHAR2(1 BYTE),
    "DISCOUNT_ID" NUMBER(38,0),
    "PATIENT_REQUEST_BRAND_GENERIC" VARCHAR2(1 BYTE),
    "WILL_CALL_PICKED_UP_DATE" DATE,
    "COMPLETION_RX_TX_ID" NUMBER(38,0),
    "PARTIAL_RX_TX_ID" NUMBER(38,0),
    "SENT_TO_EHR" VARCHAR2(1 BYTE) DEFAULT 'N',
    "DRUG_IMAGE_START_DATE" DATE,
    "ADMIN_REBILLED" VARCHAR2(1 BYTE),
    "SIG_CODE" VARCHAR2(20 BYTE),
    "SIG_TEXT_FOREIGN_LANGUAGE" VARCHAR2(515 BYTE),
    "RTRN_PRESCRIBER_CLINIC_LINK_ID" NUMBER(38,0),
    "OUTSOURCE_COMPOUND" VARCHAR2(1 BYTE),
    "IMPRINT_TEXT" VARCHAR2(512 BYTE),
    "IMPRINT_SOURCE" VARCHAR2(36 BYTE),
    "DIB_PEM_IDENTIFIER" VARCHAR2(20 BYTE),
    "DIB_DATABASE_VERSION" VARCHAR2(5 BYTE),
    "DIB_ISSUE_DATE" DATE,
    "COST_VERIFIED" VARCHAR2(1 BYTE),
    "SEND_TO_PRESCRIBER_WILDCARD" VARCHAR2(1 BYTE),
    "COUNSELING_RPH_INITIALS" VARCHAR2(3 BYTE),
    "STATE_REPORT_STATUS" VARCHAR2(1 BYTE),
    "REQUIRE_RELATION_TO_PATIENT" VARCHAR2(1 BYTE),
    "PHOTO_ID_STATE" VARCHAR2(3 BYTE),
    "PHOTO_ID_TYPE" VARCHAR2(2 BYTE),
    "PHOTO_ID_NUMBER" VARCHAR2(20 BYTE),
    "RELATIONSHIP_TO_PATIENT" VARCHAR2(2 BYTE),
    "PICKUP_FIRST_NAME" VARCHAR2(50 BYTE),
    "PICKUP_LAST_NAME" VARCHAR2(50 BYTE),
    "REQUIRE_PICKUP_ID_TYPE" VARCHAR2(1 BYTE),
    "REQUIRE_PICKUP_ID_STATE" VARCHAR2(1 BYTE),
    "REQUIRE_PICKUP_ID_NAME" VARCHAR2(1 BYTE),
    "REQUIRE_PICKUP_ID_NUMBER" VARCHAR2(1 BYTE),
    "REQUIRE_PICKUP_ID_EXPIRATION" VARCHAR2(1 BYTE),
    "PHOTO_ID_EXPIRE_DATE" DATE,
    "PATIENT_DELIVERY_NOTES_ID" NUMBER(38,0),
    "CANCEL_REASON" VARCHAR2(2 BYTE),
    "COUNSELING_RPH_EMPLOYEE_NUM" VARCHAR2(255 BYTE),
    "RPH_COUNSEL_NOTES_ID" NUMBER(38,0),
    "MEMBERSHIP_INDICATOR" VARCHAR2(1 BYTE),
    "COUNSEL_REASON" VARCHAR2(2 BYTE),
    "POS_VOID_REASON_CODE" VARCHAR2(10 BYTE),
    "AUTHORIZING_MANAGER_NAME" VARCHAR2(255 BYTE),
    "FREQUENCY_RATE" NUMBER(13,4),
    "INCREMENTAL_CONV_SENT_TO_EHR" VARCHAR2(1 BYTE),
    "ENTERPRISE_RX_FILL_COUNT" NUMBER(5,0),
    "INTENDED_DAYS_SUPPLY" NUMBER(10,0),
    "DDID_USED_BY_DRUG_SELECTION" NUMBER(10,0),
    "GPI_USED_BY_DRUG_SELECTION" VARCHAR2(24 BYTE),
    "NEW_DDID_AUTHORIZED_BY_EMP_NUM" VARCHAR2(255 BYTE),
    "TIME_FRAME" NUMBER(2,0),
    "TIME_FRAME_TYPE" NUMBER(2,0),
    "LAST_DML_BY_CONVERSION_DATE" TIMESTAMP (6),
    "END_OF_THERAPY_DATE" TIMESTAMP (6),
    "UNSELL_DATE" TIMESTAMP (6),
    "UNSELL_QUALIFIER" VARCHAR2(2 BYTE),
    "ADMIN_REBILLED_DATE" TIMESTAMP (6),
    "LAST_UPDATE_DATE" TIMESTAMP (6),
    "TP_LAST_UPDATE_DATE" TIMESTAMP (6),
    "ADMIN_REBILL_QUALIFIER" VARCHAR2(3 BYTE),
    "PRIOR_RETURN_REASON_CODE" VARCHAR2(2 BYTE),
    "POS_PRICE_ADJUSTMENT_CODE" VARCHAR2(2 BYTE),
    "TX_SOLD_QUALIFIER" VARCHAR2(3 BYTE),
    "MEDICARE_NOTICE" VARCHAR2(1 BYTE),
    "POS_REFUND_REASON_CODE" VARCHAR2(10 BYTE),
    "POS_REASON_FOR_REFUND" VARCHAR2(120 BYTE),
    "POS_REFUND_DATE" TIMESTAMP (6),
    "MEDGUIDE_TO_PRINT" VARCHAR2(1 BYTE),
    "PATIENT_EDUCATION_TO_PRINT" VARCHAR2(1 BYTE),
    "EXCLUDED_OTC" VARCHAR2(1 BYTE),
    CONSTRAINT "RX_TX_PK" PRIMARY KEY ("ID")
    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 "EPS2_KP_900001058_INDEX" ENABLE,
    SUPPLEMENTAL LOG DATA (ALL) COLUMNS,
    SUPPLEMENTAL LOG GROUP "GGS_RX_TX_78190" ("ID") ALWAYS,
    CONSTRAINT "NOTES_FK1" FOREIGN KEY ("RPH_COUNSEL_NOTES_ID")
    REFERENCES "EPS2_KP_900001058"."NOTES" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK1" FOREIGN KEY ("PRICE_OVERRIDE_NOTE_ID")
    REFERENCES "EPS2_KP_900001058"."NOTES" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK10" FOREIGN KEY ("DISCOUNT_ID")
    REFERENCES "EPS2_KP_900001058"."DISCOUNT" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK11" FOREIGN KEY ("SUPV_PRESCRIBER_CLINIC_LINK_ID")
    REFERENCES "EPS2_KP_900001058"."PRESCRIBER_CLINIC_LINK" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK12" FOREIGN KEY ("PATIENT_DISEASE_ID")
    REFERENCES "EPS2_KP_900001058"."PATIENT_DISEASE" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK13" FOREIGN KEY ("PRESCRIBER_CLINIC_LINK_ID")
    REFERENCES "EPS2_KP_900001058"."PRESCRIBER_CLINIC_LINK" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK14" FOREIGN KEY ("RX_SUMMARY_ID")
    REFERENCES "EPS2_KP_900001058"."RX_SUMMARY" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK15" FOREIGN KEY ("DRUG_GENERIC_ID")
    REFERENCES "EPS2_KP_900001058"."DRUG" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK16" FOREIGN KEY ("DRUG_BRAND_ID")
    REFERENCES "EPS2_KP_900001058"."DRUG" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK17" FOREIGN KEY ("COMPOUND_ID")
    REFERENCES "EPS2_KP_900001058"."COMPOUND" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK18" FOREIGN KEY ("RETURNED_USER_ID")
    REFERENCES "EPS2_KP_900001058"."USERS" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK2" FOREIGN KEY ("TAX_ID")
    REFERENCES "EPS2_KP_900001058"."TAX" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK20" FOREIGN KEY ("DRUG_COST_TYPE_ID")
    REFERENCES "EPS2_KP_900001058"."DRUG_COST_TYPE" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK21" FOREIGN KEY ("BASECOST_ID")
    REFERENCES "EPS2_KP_900001058"."BASECOST" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK22" FOREIGN KEY ("COMPLETION_RX_TX_ID")
    REFERENCES "EPS2_KP_900001058"."RX_TX" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK23" FOREIGN KEY ("PARTIAL_RX_TX_ID")
    REFERENCES "EPS2_KP_900001058"."RX_TX" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK24" FOREIGN KEY ("RTRN_PRESCRIBER_CLINIC_LINK_ID")
    REFERENCES "EPS2_KP_900001058"."PRESCRIBER_CLINIC_LINK" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK25" FOREIGN KEY ("PATIENT_DELIVERY_NOTES_ID")
    REFERENCES "EPS2_KP_900001058"."NOTES" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK4" FOREIGN KEY ("PRICE_CODE_ID")
    REFERENCES "EPS2_KP_900001058"."PRICE_CODE" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK5" FOREIGN KEY ("REFERENCE_BRAND_ID")
    REFERENCES "EPS2_KP_900001058"."DRUG" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK6" FOREIGN KEY ("OLD_RX_TX_ID")
    REFERENCES "EPS2_KP_900001058"."RX_TX" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK7" FOREIGN KEY ("NEW_RX_TX_ID")
    REFERENCES "EPS2_KP_900001058"."RX_TX" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK9" FOREIGN KEY ("OVERRIDE_USER_ID")
    REFERENCES "EPS2_KP_900001058"."USERS" ("ID") ENABLE NOVALIDATE
    ) 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 "EPS2_KP_900001058_DATA" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX1" ON "EPS2_KP_900001058"."RX_TX" ("DISCOUNT_ID")
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX10" ON "EPS2_KP_900001058"."RX_TX" ("PRICE_OVERRIDE_NOTE_ID")
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX11" ON "EPS2_KP_900001058"."RX_TX" ("BASECOST_ID")
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX12" ON "EPS2_KP_900001058"."RX_TX" ("REFERENCE_BRAND_ID")
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX13" ON "EPS2_KP_900001058"."RX_TX" ("RX_SUMMARY_ID")
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX15" ON "EPS2_KP_900001058"."RX_TX" ("SUPV_PRESCRIBER_CLINIC_LINK_ID")
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX16" ON "EPS2_KP_900001058"."RX_TX" ("TAX_ID")
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX17" ON "EPS2_KP_900001058"."RX_TX" ("TX_NUMBER")
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX18" ON "EPS2_KP_900001058"."RX_TX" ("DISPENSED_DRUG_NDC")
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX19" ON "EPS2_KP_900001058"."RX_TX" ("DRUG_COST_TYPE_ID")
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX2" ON "EPS2_KP_900001058"."RX_TX" ("COMPOUND_ID")
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX20" ON "EPS2_KP_900001058"."RX_TX" ("OVERRIDE_USER_ID")
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX21" ON "EPS2_KP_900001058"."RX_TX" ("RETURNED_USER_ID")
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE UNIQUE INDEX "EPS2_KP_900001058"."RX_TX_IX22" ON "EPS2_KP_900001058"."RX_TX" (CASE "NHIN_STORE_ID" WHEN 900001058 THEN "TX_NUMBER" ELSE NULL END )
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX23" ON "EPS2_KP_900001058"."RX_TX" ("COMPLETION_RX_TX_ID")
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX24" ON "EPS2_KP_900001058"."RX_TX" ("PARTIAL_RX_TX_ID")
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX28" ON "EPS2_KP_900001058"."RX_TX" (TRUNC("REPORTABLE_SALES_DATE"))
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX29" ON "EPS2_KP_900001058"."RX_TX" ("PATIENT_DELIVERY_NOTES_ID")
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX3" ON "EPS2_KP_900001058"."RX_TX" ("DRUG_BRAND_ID")
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX30" ON "EPS2_KP_900001058"."RX_TX" ("FILL_LOCATION")
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX31" ON "EPS2_KP_900001058"."RX_TX" ("FILL_DATE")
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX4" ON "EPS2_KP_900001058"."RX_TX" ("DRUG_GENERIC_ID")
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX5" ON "EPS2_KP_900001058"."RX_TX" ("NEW_RX_TX_ID")
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX6" ON "EPS2_KP_900001058"."RX_TX" ("OLD_RX_TX_ID")
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX7" ON "EPS2_KP_900001058"."RX_TX" ("PATIENT_DISEASE_ID")
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX8" ON "EPS2_KP_900001058"."RX_TX" ("PRESCRIBER_CLINIC_LINK_ID")
    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 "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX9" ON "EPS2_KP_900001058"."RX_TX" ("PRICE_CODE_ID")
    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 "EPS2_KP_900001058_INDEX" ;
    Hope to get a solution to the above issue. Why no TRAIL records are being created for this 178th column in question. If i do for example the following SQL for a different column say "RETURNED_DATE", when the value of the RETURNED_DATE=NULL before the UPDATE is fired, the TRAIL records are being generated.
    SQL>Update Eps2_Kp_900001058.Rx_Tx Set RETURNED_DATE=RETURNED_DATE Where Tx_Number=1014524 And Nhin_Store_Id=900001058 And Id=4575035;
    SQL>COMMIT;

    This looks like a trailing null issue. Sometimes Oracle decides not to write columns to the redo logs if they are null and they are the last column in the record. What version of Oracle is this? I can ask QA to look into this and see what can be done.
    Thanks for the reply, but
    1) The UPDATE done to a column i.e.POS_REFUND_DATE is NOT THE LAST column of the table=eps2_kp_900001058. Please see the DDL that is in this mail chain. So your observation is not right.
    2) Also the TRAIL records does get generated if the following UPDATE is executed and the value of this column is NOT NULL prior to the firing of this UPDATE
    Update Eps2_Kp_900001058.Rx_Tx Set Pos_Refund_Date=Pos_Refund_Date Where Tx_Number=1014524 And Nhin_Store_Id=900001058 And Id=4575035;
    3) The TRAIL records does not get generted if the following UPDATE is done and the value of the column POS_REFUND_DATE is NULL before the UPDATE is fired.
    Update Eps2_Kp_900001058.Rx_Tx Set Pos_Refund_Date=Pos_Refund_Date Where Tx_Number=1014524 And Nhin_Store_Id=900001058 And Id=4575035;
    Very strange. Hope you can get me an answer.
    Also opened an SR for this issue, the SR details are:
    SR 3-7288541301 : TRAIL records are not getting generated for SELECTED UPDATE SQL statements - DB supplimental logging
    4) Also the DB version is 11gR2, 11.2.0.3, 64 bit enterprise edition on AIX

  • DB Diagram: Modality Difference between NOT NULL and check constraint

    Hi,
    I am using jdev 11g (11.1.1.10) I am trying to create a db diagram from two tables. I have a FK that is NOT NULL (defined on the column). When i try to display these two tables modality, it does not show up in the diagram. I noticed that there are two ways NOT null can be defined on a table (right click on the db object to edit it; a) under column definitions there is a check box for not null, b) there is a check constraint that one can add to do not null.
    I am confused and was wondering whether I must I have check constraints on the database in order to display modality (optional versus mandatory). Logically speaking it does not make any sense though.

    Hi Susan,
    Thanks for your email. I understand that in order to show modality under
    UML notation, one must define a COLUMN being NOT NULL instead of defining a check constraint.
    I still do not understand how modality (optional versus mandatory) is shown in ERD notation in JDev. I tried flipping ERD/UML notations and made sure icons for tables were showing, but no MODALITY is shown in ERD notation ( an '0" icon or a "|" icon for optional and mandatory). Is it the solid line versus dotted line in the ERD diagram? I am confused because generally under Crawfoot ERD notation '0" icon or a "|" icon is shown for modality.
    Modality gets picked up in jdev diagram when COLUMN not null is specified and UML notation is used
    ALTER TABLE DETAILAJ MODIFY EMPID not null;
    Modality does not get picked up in jdev db diagram when check constraint is specified and UML notation is used
    ALTER TABLE DETAILAJ
    ADD CONSTRAINT CK_NN_DETAILAJ__EMPID CHECK(EMPID IS NOT NULL) ;
    Another question i have related to the matter mentioned above is as follows. Since I want to see modality in db diagram, it follows that I must define a column as not null instead of a check constraint. I must also use NO VALIDATE on NOT NULL column because i have prior data that does not meet the new restriction. I noticed that if i use the following syntax to define a NOT NULL column, two things happen.
    a) A constraint is defined as not null automatically and a system generated name is given to the constraint.
    b) DB diagram in Jdev does not show the modality.
    My question is whether there is a way to see modality in this case.
         alter table DETAILAJ
         MODIFY EMPID NOT NULL ENABLE NOVALIDATE ;
    Edited by: user11219846 on Nov 19, 2009 11:07 AM

Maybe you are looking for