Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Re: Creating types in Orace 9i: any help?
Because there's a comma after the second attribute:
create or replace type Persontype as Object (
PersNr integer,
Name varchar(30),
);
/
The correct version is
create or replace type Persontype as Object (
PersNr integer,
Name varchar(30)
);
/
(you use the comma to separate attributes and methods).
HTH. Finn
-- --------------------------------------------------------------------------- Finn Ellebaek Nielsen ChangeGroup ApS Product Manager, Principal Consultant, Partner Kronprinsessegade 54, 4. E-mail: finn.ellebaek.nielsen_at_changegroup.dk DK-1306 Koebenhavn K Mobile: +45 20 32 49 25 Denmark Phone: +45 33 32 77 78 http://www.changegroup.dk --------------------------------------------------------------------------- "Where do you want to GPF today?" "Roman Zhovtulya" <roman_at_fh-offenburg.de> wrote in message news:arrcr8$s1l$1_at_news.BelWue.DE...Received on Sun Nov 24 2002 - 16:05:52 CST
> Hello Dennis,
> Thanks a lot for the help and explanations.
> I've tried compiling the following:
> -----
> create or replace type Persontype as Object
> (
> PersNr integer,
> Name varchar(30),
> );
> /
> -----
> , but it kept on giving "compiled with errors".
>
> I searched Google and came accross the following line:
> ----
> map member function map_function return varchar2
> ----
> If I add it after "Name varchar(30)", it works flawlessly.
> (i.e,
> ----
> create or replace type Persontype as Object
> (
> PersNr integer,
> Name varchar(30),
> map member function map_function return varchar2
> );
> /
> ----
>
> Any idea of why it's needed there?
>
> Thanks a lot,
> Roman Zhovtulya
> > >
> "Dennis Petersen" <fessor_at_software.dk> wrote in message
> news:arqktd$gkk$1_at_news.cybercity.dk...
> > > create type Persontype
> > > (
> > > PersNr integer,
> > > Name varchar(30),
> > > primary key (EmpNr)
> > > );
> >
> > You need to tell that it is of an object type, also use the create or
> > replace if you plan to use a script that you can just run again every
time
> > you change something...
> > Another thing is that you declare a primary key ? This is not for the
> object
> > but could very well be on the table where you want to insert the
object...
> > so try the following:
> >
> > create or replace type Persontype as Object
> > (
> > PersNr integer,
> > Name varchar(30),
> > );
> > -- The / tells Oracle that the definition is done and it should compile
> the
> > object...
> > /
> > -- Now here's a table that can contain the Persontype objects
> > create table people(
> > EmpNr integer,
> > person PersonType,
> > CONSTRAINT pk_people PRIMARY KEY(EmpNr)
> > );
> > -- Note you could easily just declare a table of Persontype type and
> Oracle
> > will assign an OID (Object ID) as a unique identifier... like this
> > -- create table people of Persontype
> >
> > Hope it helps...
> > Sincerely,
> > Dennis P
> >
> >
> >
![]() |
![]() |