update without listing columns [message #10471] |
Sun, 25 January 2004 22:43 |
schnee
Messages: 1 Registered: January 2004
|
Junior Member |
|
|
Anybody remember how to update a row without listing columns, but just values?
UPDATE newtable SET (2,3,4); //????
or
UPDATE newtable SET VALUE (5,6,7); // ???
|
|
|
Re: update without listing columns [message #10475 is a reply to message #10471] |
Sun, 25 January 2004 23:12 |
William Robertson
Messages: 1643 Registered: August 2003 Location: London, UK
|
Senior Member |
|
|
Only if it's an object table AFAIK. For example say we have an object type PERSON:
SQL> desc person
Name Null? Type
------------------------------- -------- ----
ID NUMBER
GENDER VARCHAR2(1)
FIRST_NAME VARCHAR2(40)
LAST_NAME VARCHAR2(40)
BIRTH_DATE DATE
SQL> CREATE TABLE people OF PERSON;
Table created.
SQL> INSERT INTO people
2 ( id
3 , gender
4 , first_name
5 , last_name
6 , birth_date )
7 VALUES
8 ( 1
9 , 'M'
10 , 'Lisa'
11 , 'Simpson'
12 , DATE '1994-01-01' );
1 row created.
SQL> INSERT INTO people
2 ( id
3 , gender
4 , first_name
5 , last_name
6 , birth_date )
7 VALUES
8 ( 2
9 , 'M'
10 , 'Bart'
11 , 'Simpson'
12 , DATE '1993-01-01' );
1 row created.
SQL> commit;
Commit complete.
SQL> select * from people;
ID G FIRST_NAME LAST_NAME BIRTH_DATE
------ - -------------------- -------------------- -----------
1 M Lisa Simpson 01-JAN-1994
2 M Bart Simpson 01-JAN-1993
2 rows selected.
<b>SQL> UPDATE people p SET p = PERSON(1, 'F', 'Lisa', 'Simpson', DATE '1994-01-01') WHERE id = 1;</b>
1 row updated.
SQL> select * from people;
ID G FIRST_NAME LAST_NAME BIRTH_DATE
----- - -------------------- -------------------- -----------
1 F Lisa Simpson 01-JAN-1994
2 M Bart Simpson 01-JAN-1993
2 rows selected.
-- Try the same syntax on an ordinary (non-object) table:
SQL> create table regular_table as select * from people;
Table created.
SQL> UPDATE regular_table p SET p = PERSON(1, 'F', 'Lisa', 'Simpson', DATE '1994-01-01') WHERE id = 1;
UPDATE regular_table p SET p = PERSON(1, 'F', 'Lisa', 'Simpson', DATE '1994-01-01') WHERE id = 1
*
ERROR at line 1:
ORA-00904: "P": invalid identifier
SQL>
|
|
|