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).