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

Reply via email to