PL/SQL Object Question

From: daviscomp20 <bmarini_at_bryan-marini-dot-com.no-spam.invalid>
Date: Sat, 16 Apr 2005 02:47:14 -0500
Message-ID: <Q5ednSp8xqWfXv3fRVn_vA_at_giganews.com>



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. Received on Sat Apr 16 2005 - 09:47:14 CEST

Original text of this message