CREATE TYPE Customer_t AS OBJECT
(
cid char(6),
name varchar(15),
birthdate date,
phone char(10),
address varchar(50)
);
CREATE TABLE Customer OF Customer_t
(
cid PRIMARY KEY
);
CREATE TYPE Car_t AS OBJECT
(
regno char(9),
make varchar(12),
model varchar(10),
mdate date,
owner REF Customer_t,
value number(8,2)
);
/
CREATE TABLE Cars OF Car_t (regno PRIMARY KEY );
INSERT INTO Cars (regno, make, model, mdate, owner, value)
VALUES ('car1', 'german','honda',
TO_DATE('2000/12/16 12:00:00', 'yyyy/mm/dd hh:mi:ss'),
'c1', 8000 );
Error :
SQL Error: ORA-00932: inconsistent datatypes: expected REF got CHAR 00932. 00000 - "inconsistent datatypes: expected %s got %s"
varchar2
is the standard short string type in Oracle.char
is just a weird ANSI compatibility feature there to waste space and create bugs. – William Robertson