if im reading your code right... looks like your overriding in an anonymous block. in most OO languages overriding is done by a child class. i dont see any subclassing here? didnt they add sub-types and 'extends' to 9.2?
btw, are you using object oriented design in your database? How efficient do you find that? > > From: Stefan Jahnke <[EMAIL PROTECTED]> > Date: 2003/07/15 Tue AM 06:49:25 EDT > To: Multiple recipients of list ORACLE-L <[EMAIL PROTECTED]> > Subject: Object Types in PL/SQL > > Hi list > > I have a problem regardint PL/SQL Object Types. According to the fine > manual, it should be > possible to override the default constructor (I'm on 9.2.0.3.0 Win2k). I did > that, Object Type > compiles without complaints: > > CREATE OR REPLACE TYPE tVNR AS OBJECT > ( > > vVNR VARCHAR2(14), > > CONSTRUCTOR FUNCTION tVNR(piVNR VARCHAR2) > RETURN SELF AS RESULT, > > MEMBER FUNCTION getVNR > RETURN VARCHAR2 > > ) INSTANTIABLE FINAL; > > CREATE OR REPLACE TYPE BODY tVNR AS > > CONSTRUCTOR FUNCTION tVNR(piVNR VARCHAR2) > RETURN SELF AS RESULT IS > BEGIN > IF (LENGTH(piVNR)=11) THEN > SELF.vVNR := SUBSTR(piVNR,1,4) || '.' || SUBSTR(piVNR,5,4) || '.' || > SUBSTR(piVNR,9,3); > ELSE > SELF.vVNR := 'invalid'; > END IF; > RETURN; > END; > > MEMBER FUNCTION getVNR RETURN VARCHAR2 IS > BEGIN > RETURN SELF.vVNR; > END; > END; > > Now, everytime I want to create an object like this: > > declare > vVNR tVNR; > begin > vVNR := new tVNR('12345678901'); > dbms_output.put_line(vVNR.getVNR()); > end; > > I get the following error message: > > ERROR at line 4: > ORA-06550: line 4, column 15: > PLS-00307: too many declarations of 'TVNR' match this call > ORA-06550: line 4, column 3: > PL/SQL: Statement ignored > > Looks to me like the PL/SQL enginge isn't able to distinguish the default > constructor from the > overridden (my) version, since they have the same signature (of course). > > Any input ? I couldn't find ANY descenct hints in the fine manual or the > Feuerstein book :(. > > TIA, > Stefan > > > > -- > Please see the official ORACLE-L FAQ: http://www.orafaq.net > -- > Author: Stefan Jahnke > INET: [EMAIL PROTECTED] > > Fat City Network Services -- 858-538-5051 http://www.fatcity.com > San Diego, California -- Mailing list and web hosting services > --------------------------------------------------------------------- > To REMOVE yourself from this mailing list, send an E-Mail message > to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in > the message BODY, include a line containing: UNSUB ORACLE-L > (or the name of mailing list you want to be removed from). You may > also send the HELP command for other information (like subscribing). > > -- Please see the official ORACLE-L FAQ: http://www.orafaq.net -- Author: <[EMAIL PROTECTED] INET: [EMAIL PROTECTED] Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting services --------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).