Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Another newbie question about UPDATE

Another newbie question about UPDATE

From: Ole Hansen <ohahaahr_at_hotmail.com>
Date: 24 May 2005 07:08:59 -0700
Message-ID: <3d05b5c1.0505240608.6ec983b5@posting.google.com>


Hi !

Another question from this stupid danish oracle-newbie :-)

I have 2 tables, STOCKTABLE and STOCKTABLE_EXT

I want to update 2 fields in STOCKTABLE, with the values of 2 fields in STOCKTABLE_EXT.

STOCKTABLE has the following fields:
Itemnumber ItemName Itemgroup
---------- ------------ ---------

1          Hammer       10
2          Screwdriver  10
3          saw          10


STOCKTABLE_EXT has the following fields:
Itemnumber ItemName     ItemGroup

---------- ------------ ---------
1 Book 20 2 Knife 20 4 Fork 30 I want to update STOCKTABLE, so the result will be: Itemnumber ItemName Itemgroup
---------- ------------ ---------
1 Book 20 2 Knife 20 3 saw 10

I have tried:

UPDATE STOCKTABLE st

   SET (st.ItemName, st.ItemGroup) =

          (SELECT ste.ItemName, ste.ItemGroup
             FROM STOCKTABLE_EXT ste
            WHERE st.itemnumber = ste.itemnumber)

But i get an ORA-01407 "Cannot update STOCKTABLE.ItemName to NULL".

So obviously there is something wrong with my statement. What am i doing wrong ?

Of course i could try:

UPDATE STOCKTABLE st

   SET st.ItemName = (SELECT ste.ItemName

                      FROM STOCKTABLE_EXT ste
                      WHERE st.itemnumber = ste.itemnumber),
   SET st.ItemGroup = (SELECT ste.ItemGroup
                      FROM STOCKTABLE_EXT ste
                      WHERE st.itemnumber = ste.itemnumber),
where exists (SELECT ste.ItemNumber
              FROM STOCKTABLE_EXT ste
              WHERE st.itemnumber = ste.itemnumber)

But this don't seem right.

Anyone has better idea ?

Regards,
Ole Received on Tue May 24 2005 - 09:08:59 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US