VSN NOT NULL issue with 11g

In our 10g to 11g migration, we have identified a strange problem:

With this DDL:
drop table T1 cascade constraints;
drop table T2 cascade constraints;
drop table T3 cascade constraints;
drop table T4 cascade constraints;

--------------------------------------------------------
--  DDL for Table T1
--------------------------------------------------------

  CREATE TABLE "T1" 
   (     "T1_PK" NUMBER(4,0), 
     "T1_DATA" VARCHAR2(20 BYTE)
   );
--------------------------------------------------------
--  DDL for Table T2
--------------------------------------------------------

  CREATE TABLE "T2" 
   (     "T2_PK" NUMBER(4,0), 
     "T2_T1_FK" NUMBER(4,0), 
     "T2_DATA" VARCHAR2(20 BYTE)
   );
--------------------------------------------------------
--  DDL for Table T3
--------------------------------------------------------

  CREATE TABLE "T3" 
   (     "T3_PK" NUMBER(4,0), 
     "T3_T2_FK" NUMBER(4,0), 
     "T3_DATA" VARCHAR2(20 BYTE)
   );
--------------------------------------------------------
--  DDL for Table T4
--------------------------------------------------------

  CREATE TABLE "T4" 
   (     "T4_PK" NUMBER(4,0), 
     "T4_T2_FK" NUMBER(4,0), 
     "T4_DISC" CHAR(1 BYTE)
   );

REM INSERTING into T1
Insert into T1 (T1_PK,T1_DATA) values (1,'T1_1');
Insert into T1 (T1_PK,T1_DATA) values (2,'T1_2');
REM INSERTING into PERS_ADM.T2
Insert into T2 (T2_PK,T2_T1_FK,T2_DATA) values (1,1,'T2_1');
Insert into T2 (T2_PK,T2_T1_FK,T2_DATA) values (2,2,'T2_2');
Insert into T2 (T2_PK,T2_T1_FK,T2_DATA) values (3,1,'T2_3');
REM INSERTING into PERS_ADM.T3
Insert into T3 (T3_PK,T3_T2_FK,T3_DATA) values (1,1,'T3_1');
Insert into T3 (T3_PK,T3_T2_FK,T3_DATA) values (2,2,'T3_2');
Insert into T3 (T3_PK,T3_T2_FK,T3_DATA) values (3,1,'T3_3');
REM INSERTING into PERS_ADM.T4
Insert into T4 (T4_PK,T4_T2_FK,T4_DISC) values (1,1,'1');
Insert into T4 (T4_PK,T4_T2_FK,T4_DISC) values (2,2,'1');
Insert into T4 (T4_PK,T4_T2_FK,T4_DISC) values (3,1,'0');
This work of SELECTION very well and always return data T3 because one of the T2 value is recovered
select *
from T1
left join (select T2.* from T2 inner join T4 on T4.T4_T2_FK = T2.T2_PK and T4.T4_DISC = 0) T2A on T2A.T2_T1_FK = T1.T1_PK
left join (select T2.* from T2 inner join T4 on T4.T4_T2_FK = T2.T2_PK and T4.T4_DISC = 1) T2B on T2B.T2_T1_FK = T1.T1_PK
left join T3 on T3.T3_T2_FK = nvl(T2A.T2_PK, T2B.T2_PK)
but when we activate restriction non-zero in the PK fields:
--------------------------------------------------------
--  Constraints for Table T1
--------------------------------------------------------

  ALTER TABLE "T1" MODIFY ("T1_PK" NOT NULL ENABLE);
 
--------------------------------------------------------
--  Constraints for Table T2
--------------------------------------------------------

  ALTER TABLE "T2" MODIFY ("T2_PK" NOT NULL ENABLE);
 
--------------------------------------------------------
--  Constraints for Table T3
--------------------------------------------------------

  ALTER TABLE "T3" MODIFY ("T3_PK" NOT NULL ENABLE);
 
--------------------------------------------------------
--  Constraints for Table T4
--------------------------------------------------------

  ALTER TABLE "T4" MODIFY ("T4_PK" NOT NULL ENABLE);
 
the nvl function is not used!
It seems that Oracle was so adept at realizing that a field not null can never be null, decide not to apply the nvl function

Any idea?

Can you just clarify what the problem?
I see no difference in 11.2.0.2 - plan looks the same, data looks the same. Am I missing something?

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
CORE    11.2.0.2.0      Production
TNS for Linux: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production

SQL> set autotrace on
SQL> select *
  2  from T1
  3  left join (select T2.* from T2 inner join T4 on T4.T4_T2_FK = T2.T2_PK and T4.T4_DISC = 0) T2A
on T2A.T2_T1_FK = T1.T1_PK
  4  left join (select T2.* from T2 inner join T4 on T4.T4_T2_FK = T2.T2_PK and T4.T4_DISC = 1) T2B
on T2B.T2_T1_FK = T1.T1_PK
  5  left join T3 on T3.T3_T2_FK = nvl(T2A.T2_PK, T2B.T2_PK);

     T1_PK T1_DATA         T2_PK   T2_T1_FK T2_DATA         T2_PK   T2_T1_FK T2_DATA         T3_PK   T3_T2_FK T3
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- -
         1 T1_1                1          1 T2_1                1          1 T2_1                1          1 T3_1
         2 T1_2                                                 2          2 T2_2                2          2 T3_2
         1 T1_1                1          1 T2_1                1          1 T2_1                3          1 T3_3

Execution Plan
----------------------------------------------------------
Plan hash value: 3187431534

--------------------------------------------------------------------------------
| Id  | Operation               | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT        |      |     3 |   417 |    27  (12)| 00:00:01 |
|*  1 |  HASH JOIN OUTER        |      |     3 |   417 |    27  (12)| 00:00:01 |
|   2 |   VIEW                  |      |     2 |   202 |    22  (10)| 00:00:01 |
|*  3 |    HASH JOIN OUTER      |      |     2 |   202 |    22  (10)| 00:00:01 |
|*  4 |     HASH JOIN OUTER     |      |     2 |   126 |    13   (8)| 00:00:01 |
|   5 |      TABLE ACCESS FULL  | T1   |     2 |    50 |     4   (0)| 00:00:01 |
|   6 |      VIEW               |      |     1 |    38 |     9  (12)| 00:00:01 |
|*  7 |       HASH JOIN         |      |     1 |    54 |     9  (12)| 00:00:01 |
|*  8 |        TABLE ACCESS FULL| T4   |     1 |    16 |     4   (0)| 00:00:01 |
|   9 |        TABLE ACCESS FULL| T2   |     3 |   114 |     4   (0)| 00:00:01 |
|  10 |     VIEW                |      |     2 |    76 |     9  (12)| 00:00:01 |
|* 11 |      HASH JOIN          |      |     2 |   108 |     9  (12)| 00:00:01 |
|* 12 |       TABLE ACCESS FULL | T4   |     2 |    32 |     4   (0)| 00:00:01 |
|  13 |       TABLE ACCESS FULL | T2   |     3 |   114 |     4   (0)| 00:00:01 |
|  14 |   TABLE ACCESS FULL     | T3   |     3 |   114 |     4   (0)| 00:00:01 |
--------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - access("T3"."T3_T2_FK"(+)=NVL("T2A"."T2_PK","T2B"."T2_PK"))
   3 - access("T2B"."T2_T1_FK"(+)="T1"."T1_PK")
   4 - access("T2A"."T2_T1_FK"(+)="T1"."T1_PK")
   7 - access("T4"."T4_T2_FK"="T2"."T2_PK")
   8 - filter(TO_NUMBER("T4"."T4_DISC")=0)
  11 - access("T4"."T4_T2_FK"="T2"."T2_PK")
  12 - filter(TO_NUMBER("T4"."T4_DISC")=1)

Note
-----
   - dynamic sampling used for this statement (level=4)

Statistics
----------------------------------------------------------
         36  recursive calls
          0  db block gets
        111  consistent gets
          0  physical reads
          0  redo size
       1000  bytes sent via SQL*Net to client
        334  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          3  rows processed

SQL>   ALTER TABLE "T1" MODIFY ("T1_PK" NOT NULL ENABLE); 

Table altered.

SQL>   ALTER TABLE "T2" MODIFY ("T2_PK" NOT NULL ENABLE); 

Table altered.

SQL>   ALTER TABLE "T3" MODIFY ("T3_PK" NOT NULL ENABLE); 

Table altered.

SQL>   ALTER TABLE "T4" MODIFY ("T4_PK" NOT NULL ENABLE);

Table altered.

SQL> select *
  2  from T1
  3  left join (select T2.* from T2 inner join T4 on T4.T4_T2_FK = T2.T2_PK and T4.T4_DISC = 0) T2A
on T2A.T2_T1_FK = T1.T1_PK
  4  left join (select T2.* from T2 inner join T4 on T4.T4_T2_FK = T2.T2_PK and T4.T4_DISC = 1) T2B
on T2B.T2_T1_FK = T1.T1_PK
  5  left join T3 on T3.T3_T2_FK = nvl(T2A.T2_PK, T2B.T2_PK);

     T1_PK T1_DATA         T2_PK   T2_T1_FK T2_DATA         T2_PK   T2_T1_FK T2_DATA         T3_PK   T3_T2_FK T3
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- -
         1 T1_1                1          1 T2_1                1          1 T2_1                1          1 T3_1
         2 T1_2                                                 2          2 T2_2                2          2 T3_2
         1 T1_1                1          1 T2_1                1          1 T2_1                3          1 T3_3

Execution Plan
----------------------------------------------------------
Plan hash value: 3187431534

--------------------------------------------------------------------------------
| Id  | Operation               | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT        |      |     3 |   417 |    27  (12)| 00:00:01 |
|*  1 |  HASH JOIN OUTER        |      |     3 |   417 |    27  (12)| 00:00:01 |
|   2 |   VIEW                  |      |     2 |   202 |    22  (10)| 00:00:01 |
|*  3 |    HASH JOIN OUTER      |      |     2 |   202 |    22  (10)| 00:00:01 |
|*  4 |     HASH JOIN OUTER     |      |     2 |   126 |    13   (8)| 00:00:01 |
|   5 |      TABLE ACCESS FULL  | T1   |     2 |    50 |     4   (0)| 00:00:01 |
|   6 |      VIEW               |      |     1 |    38 |     9  (12)| 00:00:01 |
|*  7 |       HASH JOIN         |      |     1 |    54 |     9  (12)| 00:00:01 |
|*  8 |        TABLE ACCESS FULL| T4   |     1 |    16 |     4   (0)| 00:00:01 |
|   9 |        TABLE ACCESS FULL| T2   |     3 |   114 |     4   (0)| 00:00:01 |
|  10 |     VIEW                |      |     2 |    76 |     9  (12)| 00:00:01 |
|* 11 |      HASH JOIN          |      |     2 |   108 |     9  (12)| 00:00:01 |
|* 12 |       TABLE ACCESS FULL | T4   |     2 |    32 |     4   (0)| 00:00:01 |
|  13 |       TABLE ACCESS FULL | T2   |     3 |   114 |     4   (0)| 00:00:01 |
|  14 |   TABLE ACCESS FULL     | T3   |     3 |   114 |     4   (0)| 00:00:01 |
--------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - access("T3"."T3_T2_FK"(+)=NVL("T2A"."T2_PK","T2B"."T2_PK"))
   3 - access("T2B"."T2_T1_FK"(+)="T1"."T1_PK")
   4 - access("T2A"."T2_T1_FK"(+)="T1"."T1_PK")
   7 - access("T4"."T4_T2_FK"="T2"."T2_PK")
   8 - filter(TO_NUMBER("T4"."T4_DISC")=0)
  11 - access("T4"."T4_T2_FK"="T2"."T2_PK")
  12 - filter(TO_NUMBER("T4"."T4_DISC")=1)

Note
-----
   - dynamic sampling used for this statement (level=4)

Statistics
----------------------------------------------------------
         98  recursive calls
          0  db block gets
        186  consistent gets
          0  physical reads
          0  redo size
       1000  bytes sent via SQL*Net to client
        334  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
         20  sorts (memory)
          0  sorts (disk)
          3  rows processed

SQL> 

Tags: Database

Similar Questions

  • Connectivity issues with 11g Express Edition on Windows 7 Professional 64-bit

    Hello

    I uninstalled my version 10g Express Edition and proceeded with the installation of the 11g version.  I can connect to sqlplus, but when I try to open the web application in DB (apex), I can not.

    The clsc.log file contains the following error:

    Oracle Database 11g Clusterware Release 11.2.0.2.0 - Production Copyright 1996, 2010 Oracle. All rights reserved.

    2015-01-08 - 19:55:52.286: [41100] [default] ut_read_reg:2:ocr SOFTWARE\Oracle\olr registry key cannot be opened. error 2

    [DESTROYED] clse_get_crs_home [41100]: error recovery configuration OLR [0] [error opening of the olr registry key. The system cannot find the specified file.

    ]

    I've uninstalled and reinstalled twice with the same results.  Everyone knows what is happening?

    Any help is greatly appreciated.

    This kind of things ODE was a Kipper.  The problem was that installation configures the listener with the domain name in the HOST, but the URL for the IP address of the apex uses localhost.  I changed the listener HOST localhost, rebooted, and now all is well

  • Please let me know how I can add a new column with a constraint not null, table already has data, without falling off the table... Please help me on this issue...

    Hello

    I have an emp_job_det with a, b, c columns table. Note that this TABLE ALREADY has DATA OF THESE COLUMNS

    IAM now add a new column "D" with forced not null

    Fistly I alter the table by adding the single column "D", if I do, the entire column would be created with alll of nulls for the column DEFAULT D

    ALTER table emp_job_det Add number D; -do note not null CONSTRAINT is not added

    Second... If I try to add the constraint not null, get an eoor as already conatained null values...

    (GOLD)

    In other words, if I put the query

    ALTER table emp_job_det Add number D NOT NULL; -THROWS ERROR AS TABLE ALREADY CONTAINS DATA

    So my question is how how can I add a new column with a constraint not null, table already has the data, without falling off the table

    Please help me on this issue...

    Add the column without constraint, then fill the column. Once all the rows in the table are given in the new column, and then add the constraint not null.

  • Install OSX 10.11.4 I do cleaning but R command will not work. With the help of USB keyboard so not wifi issues to to worry. Help?

    Install OSX 10.11.4 I do cleaning but R command will not work. With the help of USB keyboard so not wifi issues to to worry. Help?

    Would you like to share why you must do a clean install?

    You can try the recovery of the internet (which will work if your older model has been updated to enable of): hold command + Option + R until you see a progress bar (take a while). It will connect you to the Apple servers. When you see the utility window, choose disk utility to erase your disk and when you're done, choose to reinstall OS X.

    Computers that can be upgraded to use OS X Internet Recovery - Apple Support

    PS: Correction: I think not yours can be updated; in this case, you will need the original installation disks to wipe the drive and reinstall.

  • Fill with the previous 'not null' value ' Null' known values

    Hi all

    I have the following requirement to fill in missing values (null values) with the "Not null" values known previously available.

    Source of the example:

    Emp_Id Start_Dt LOC Comm Grade

    A101

    01/01/2013

    NJ4000B

    A101

    15/03/2013

    CA4800

    A101

    15/05/2013

    3500C

    A101

    25/07/2013

    2500

    A101

    20/12/2013

    NY5800A

    A101

    14/02/2013

    5000

    A101

    20/05/2014

    DC6000A

    A101

    03/06/2014

    3600C

    A102

    24/05/2013

    THE5000A

    A102

    15/12/20134300

    Expected results values in columns LOC and grades:

    Emp_Id Start_Dt LOC Comm Grade
    A101

    01/01/2013

    NJ4000BA101

    15/03/2013

    CA4800BA101

    15/05/2013

    CA3500CA101

    25/07/2013

    CA2500CA101

    20/12/2013

    NY5800AA101

    14/02/2013

    NY5000AA101

    20/05/2014

    DC6000AA101

    03/06/2014

    DC3600CA102

    24/05/2013

    THE5000AA102

    15/12/2013

    THE4300A

    Any suggestions would be helpful.

    Kind regards

    Arun

    Also, I think that this is a case of analytics. Last_value is perhaps the most appropriate function for the given task:

    Select emp_id

    start_dt

    last_value(loc ignore nulls) over (partition by emp_id arrested by start_dt) loc

    comm

    last_value(grade ignore nulls) about category (partition by emp_id arrested by start_dt)

    t

  • Adding a column with constriant not null

    Hello

    How to add a column to the story with the data and put a constriant not null for her.
    Can someone please let know.

    Thank you

    If you want to avoid the audit of the nullity of this column, existing values that use:

    alter table t1 modify emp_key not null novalidate;
    
  • 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

  • Listagg works does not in mview with fast refresh on commit?

    Version Info:

    Oracle Database 11 g Release 11.2.0.3.0 - 64 bit Production

    PL/SQL Release 11.2.0.3.0 - Production

    CORE Production 11.2.0.3.0

    AMT for 64-bit Windows: Version 11.2.0.3.0 - Production

    NLSRTL Version 11.2.0.3.0 - Production

    I have a materialized view that is defined as fast refresh on validation and includes a call to listagg. The update goes as planned, but the value of the column that is created by using the listagg not updated unless I have make an explicit refresh. I was able to recreate the problem with a simple case, pasted below. Someone knows how to fix this?

    Thank you!

    -Tom

    Test scenario follows...

    SQL> create table codes (
      2       id number primary key,
      3       product varchar2(10) not null,
      4       code varchar2(10) not null);
    
    Table created.
    
    SQL> create materialized view log on codes with rowid, sequence (product, code) including new values;
    
    Materialized view log created.
    
    SQL> create materialized view code_agg_mv
      2        refresh fast on commit
      3        with rowid
      4        as
      5  select c.product
      6        , listagg(c.code, ',') within group (order by c.code) codes
      7        , count(*) cnt
      8    from codes c
      9   group by c.product;
    
    Materialized view created.
    
    SQL> truncate table mv_capabilities_table;
    
    Table truncated.
    
    SQL> begin
      2       dbms_mview.explain_mview('CODE_AGG_MV');
      3       commit;
      4  end;
      5  /
    
    PL/SQL procedure successfully completed.
    
    SQL> select capability_name, possible
      2    from mv_capabilities_table
      3   where capability_name like '%REFRESH%'
      4   order by capability_name;
    
    CAPABILITY_NAME                P
    ------------------------------ -
    REFRESH_COMPLETE               Y
    REFRESH_FAST                   Y
    REFRESH_FAST_AFTER_ANY_DML     Y
    REFRESH_FAST_AFTER_INSERT      Y
    REFRESH_FAST_AFTER_ONETAB_DML  Y
    REFRESH_FAST_PCT               N
    
    6 rows selected.
    
    SQL> insert into codes (id, product, code) values (1, 'Pants', 'Large');
    
    1 row created.
    
    SQL> insert into codes (id, product, code) values (2, 'Pants', 'Blue');
    
    1 row created.
    
    SQL> insert into codes (id, product, code) values (3, 'Pants', 'Itchy');
    
    1 row created.
    
    SQL> commit;
    
    Commit complete.
    
    SQL> select *
      2    from code_agg_mv;
    
    PRODUCT    CODES                                 CNT
    ---------- ------------------------------ ----------
    Pants      Blue,Itchy,Large                        3
    
    SQL> -- ^^^ This is correct ^^^
    
    SQL> delete from codes where id = 3;
    
    1 row deleted.
    
    SQL> commit;
    
    Commit complete.
    
    SQL> select * from code_agg_mv;
    
    PRODUCT    CODES                                 CNT
    ---------- ------------------------------ ----------
    Pants      Blue,Itchy,Large                        2
    
    SQL> -- ^^^ CNT is correct, but codes should not contain "Itchy" ^^^
    SQL> --
    SQL> -- Try an explicit fast refresh...
    
    SQL> begin
      2       dbms_mview.refresh('CODE_AGG_MV', 'F');
      3  end;
      4  /
    
    PL/SQL procedure successfully completed.
    
    SQL> select * from code_agg_mv;
    
    PRODUCT    CODES                                 CNT
    ---------- ------------------------------ ----------
    Pants      Blue,Itchy,Large                        2
    
    SQL> -- ^^^ Nope, same issue. ^^^
    SQL> --
    SQL> -- Try an explicit complete refresh...
    
    SQL> begin
      2       dbms_mview.refresh('CODE_AGG_MV', 'C');
      3  end;
      4  /
    
    PL/SQL procedure successfully completed.
    
    SQL> select * from code_agg_mv;
    
    PRODUCT    CODES                                 CNT
    ---------- ------------------------------ ----------
    Pants      Blue,Large                              2
    
    SQL> -- ^^^ There we go. ^^^
    
    

    Message edited by Tom N to include database version information.

    Hello Tom,

    listagg() is not supported for fast refresh.

    http://docs.Oracle.com/CD/E11882_01/server.112/e25554/basicmv.htm#i1007028

    Only SUM, COUNT, AVG, STDDEV, VARIANCE, MIN and MAX are supported to fast refresh.

    Kind regards

    Pravin

  • Hide and show region - open if Item not Null

    Hello
    I use APEX 4.0 and can not find a way to get the skin and see the region develop if a Page element has a value (is not Null) in the region, without clicking the sign more. I would like it done automatically based on an item that has a value or not. null or not null. I know how to have always hide it and see the region see the/develop once the shape is present. But if the item is null the region hosts not on the loading of the page, but when an element has the value when the page opens, I want the area to be open / extend without having to click the sign more. I searched the forum and found a large number of threads to have just the Hide and Show open area / develop once the form on the page is open, but not what I need now. Thanks for reading this thread and look forward to a support for this issue.

    Hi Charles,

    I created a dynamic action on page 7, it works as expected.

    This code will only work with your current theme, because the rocker is made according to the css class of the > icon (as you can see in the live action)

    Thank you

  • Virtual column NOT NULL

    Hello dear colleagues,

    Anyone able to replicate this?
    BANNER
    --------------------------------------------------------------------------------
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
    PL/SQL Release 11.2.0.1.0 - Production
    CORE    11.2.0.1.0      Production
    TNS for 32-bit Windows: Version 11.2.0.1.0 - Production
    NLSRTL Version 11.2.0.1.0 - Production
    Create a small table:
    SQL> create table t(x number not null);
    
    Table created.
    Now, add a virtual column, using decode:
    SQL> alter table t add (y varchar2(1) as (decode(x, 1, 'A', 'B')) not null);
    
    Table altered.
    'The same', using case column
    SQL> alter table t add (z varchar2(1) as (case x when 1 then 'A' else 'B' end));
    
    Table altered.
    Only it wasn't the same, I wanted to NOT NULL.
    If I do, I get:
    SQL> alter table t add (w varchar2(1) as (case x when 2 then 'A' else 'B' end) not null);
    alter table t add (w varchar2(1) as (case x when 2 then 'A' else 'B' end) not null)
                                                                     *
    ERROR at line 1:
    ORA-03113: EOF pÕ kommunikationskanal
    Process ID: 3400
    Session ID: 140 Serial number: 213
    This is consistent with this database on my laptop.


    Concerning
    Peter

    Looks like you have perhaps hit Bug Bug 9277263: ORA-07445 [ATBNUL () + 299] WHEN ADDING a CONSTRAINT INLINE ON a VIRTUAL COLUMN

  • Is it possible to remove the NOT NULL to a non-key column constraint?

    Oracle version: Enterprise Edition 11g - 11.2.0.1.0
    OS: Redhat Linux Enterprise Edition 5.0



    Hi all


    I have a question on the NON NULL columns in oracle tables and I would be grateful if you could kindly help me with this problem well.

    I have the following table
    CREATE TABLE ARTICLES
    (
        artid                VARCHAR2(20),
        lbl                  VARCHAR2(100)        NOT NULL,
        cmporder             VARCHAR2(30)         NOT NULL      
    )
    
    ALTER TABLE ARTICLES ADD CONSTRAINT PK_ARTICLES PRIMARY KEY(artid);
    It's about a year that I have this table but recently the data model has changed and the third column of the table is that is mandatory, so NULL values for column 3 cmporder are allowed. I want to know is if it is possible to change the definition of the table (for example using an ALTER statement) in order to remove the "NOT NULL" in the third column constraint? This way I can keep the 2 million lines that are already in the table and avoid making a bakup before the deletion and re-creation of the table.


    Thanks in advance,

    Kind regards
    Dariyoosh

    Yes its possible...

    ALTER TABLE ITEMS CHANGE cmporder NULL;

    It will do for you

  • PreSonus Studio One won't let me read the downloaded videos to unplug, the message reads "the licence has not been issued for this computer", the Logo ONe Sudio appear

    I downloaded a video of my own using the Firefox Addon to unplug myspace page. It saved in my files, but when I try to open it, I get a message that says: 'a licence was not issued for this computer. When I click 'ok', it brings me to the block Presonus Studio One asking me to purchase a license now. In fact, a licence was issued to this computer, and I understand that there is a problem with customers not getting Presonus does not properly established with the approval of their product. But it shouldn't stop me from playing my own videos on my own computer.

    Sorry, never heard of this software before. How are Firefox users able to listen to the music that is created b this software.
    A specific package of DRM?
    A specific plugin?

    As may of Adobe Flash?

    It seems that you have two plugins Flash for Firefox. Not a good idea because it may confuse Firefox. Try to get rid of the old version.
    Shockwave Flash 17.0 r0
    Shockwave Flash 16.0 r0

    Have you tried to get support through the PreSonus for one?
    https://forums.Presonus.com/

  • Once I downloaded the new version of Adobe Flash Player 11.3.300.262, I can not play games with my friends on Yahoo Messenger.

    It could be a coincidence, but when I upgraded to the latest version of Adobe Flash Player 11.3.300.262 I can not play games with my friends on Yahoo Messenger. I know that when I've updated for a reason that I had to try 3 times before it took. It shows that it is updated. I wonder if I have to uninstall and reinstall. Also, I never use Internet Explorer 8 but when I went there to check I found a plug check link there and it showed over there that Adobe Flash Player necessary update but it was an older version and not a Foxfire had updated me too. Now I'm really confused if it causes a problem. I've never had to control Internet Explorer for plug-ins before. Have always just updated to Foxfire since that's what I use. Adobe Flash Player seems to play videos OK not really sure if this is the issue or not. My Java plug-ins have been very well and have been updated some time there, so I know it's not that. Any help is appreciated. Thank you!

    Hey again,
    After hours of reading and checking to make sure I had good things enabled, I did, I gave up and uninstalled the latest version of Adobe Flash Player, they gave me and re-installed and later I had my friend get on Messenger and we tried games and it worked this time.
    For some strange reason when I updated it took me 3 tries before it took. So even if he told me that it has been installed, apparently it wasn't really. Just goes to show you that you can not trust what you see.
    What has really scratching my head was I went to Internet Explorer 8, which I never use more and discovered you can now get Mozilla plug in slip out there and when I did showed that same Adobe Flash Player is outdated but it was to a different version. Not knowing if it would help, I installed a new too and he said it was his understanding that it does not. So I guess you can have 1 version installed on the computer 1 despite 2 browsers different different versions. It becomes too complicated for me. Laughing out loud!
    I work with computers all the time at work but not the technical stuff. If it's something simple, I can guess through it to help someone but it's my first personal computer for me and is a former first, so I got experience using different types. We use the desk at work as well. Personally, I like computers laptops for various reasons. And the mention of people many browsers go way over my head.
    Please answer this question though and you answer back.
    DFelice

  • iPod Touch 5 Gen - iOS 9.3.1 lightning connector issues - with accessories

    Has anyone seen a problem using iOS 9.3.1 on an iPod Touch 5th generation with lightning connector devices?  Specifically, I use the iPod in a cradle of scanner which connects via the connector of the lightning, until iOS 9.3.1 the cradle was visible to the application, but once it has been updated the scanner loses communication to the iOS device and application.  IPod charge and connect to iTunes, no problem, but refuses to see the cradle, I have another iPod on an older version of iOS, which connects to the cradle even without problem.

    To try to find, I've updated the iOS to 9.3.2 beta fault from the site of the developer, this problem has now fixed the issue with the cradle.  I can't that assume Apple broke the connection in iOS 9.3.1?

    Sometimes an iOS update breaks compatibility with accessories. Since then, he has worked with next beta which seems to be the cause.

    All yo can do is to continue using the beta until the version is rejected in the pubis.

    Have reported the problem to Apple to ensure that the beta version is not yet revised to cause the same problem?

    https://www.Apple.com/feedback/iPodTouch.html

  • I can't not all sounds with Firefox, but I have a sound with Internet Explorer

    I'm not all sounds with Firefox. I have a sound with Internet Explorer

    Hi bholmes,.

    Have you looked at the article Knowledge Base, what to do if Firefox will play all of the sounds? There are many good advice on troubleshooting in there. You might have its just accidentally disabled for Firefox.

    There is also a chance it's a plugin problem. If the first article does not help, take a look at common audio problems and graphics issues.

    Hope this helps!

Maybe you are looking for