Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: PL/SQL Oracle Object Question

Re: PL/SQL Oracle Object Question

From: DA Morgan <damorgan_at_psoug.org>
Date: Tue, 15 Nov 2005 08:28:22 -0800
Message-ID: <1132072189.515169@yasure>


daviscomp20 wrote:
> Hi -
>
> I've created the following SuperType object in Oracle :
>
> CREATE OR REPLACE TYPE CT_CALC_UT as object (
> ct_plant_nm varchar2(50),
> ct_value number,
> MEMBER function get_PlantNm return varchar2,
> MEMBER procedure set_CT_Val(pi_ct_val in number)
> ) not final
>
>
> and the following Type Body :
>
> create or replace type body ct_calc_ut is
>
> member function get_PlantNm return varchar2 is
> v_plant_nm varchar2(50);
> begin
> v_plant_nm := self.ct_plant_nm;
> return v_plant_nm;
> end get_PlantNm;
>
> member procedure set_ct_val(pi_ct_val in number) is
> begin
> ct_value := pi_ct_val;
> end set_ct_val;
>
> end;
>
> Also, I've created the following subtype with it's own type body:
>
> CREATE OR REPLACE TYPE CT_CALC_SP_UT UNDER CT_CALC_UT
> (
> Sed_Basins_in_service number(2),
> Sed_Raw_flow_rate number(7,3),
> Sed_flocc_free_cl number(7,3),
> Sed_settled_free_cl number(7,3),
> App_ph number(7,3),
> Fltrs_free_cl number(7,3),
> Fltrs_flow_rate number(7,3),
> Fltrs_temp number(7,3),
> Fltrs_ph number(7,3),
> MEMBER function displayVals return varchar2
> )
>
> create or replace type body ct_calc_sp_ut is
> member function displayVals return varchar2 is
> ...
> ..
> ..
> ..
> ..
> v_ct_value := v_tot_LGiardia_Rmvl_Cred / v_log_giardia_removal_const;
>
> self.set_ct_val(v_ct_value); !!!! Error Message is Coming here !!!!!!
>
> ...
> ...
> end displayVals;
>
> I keep getting an error message, Compilation errors for TYPE BODY
> BMARINI.CT_CALC_SP_UT
>
> Error: PLS-00363: expression 'SELF' cannot be used as an assignment
> target
> Line: 138
> Text: self.set_ct_val(v_ct_value);
>
> Error: PL/SQL: Statement ignored
> Line: 138
> Text: self.set_ct_val(v_ct_value);
>
> I'm not sure what is going on with this....I have seen plenty of
> examples where an object type is being modified from within a
> procedure...and I'm prety stumped as to what is going on. If anyone
> has any help...or ideas, please let me know.
>
> Thanks.

There are good explanations of this at http://asktom.oracle.com.

-- 
Daniel A. Morgan
http://www.psoug.org
damorgan_at_x.washington.edu
(replace x with u to respond)
Received on Tue Nov 15 2005 - 10:28:22 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US