2012-04-02 10 views
21

Merhaba Eminim neden bu hatayı alıyorum. Temelde bu üç hatlarında almak:Oracle PLS-00363: '' ifadesi atama hedefi olarak kullanılamıyor

PLS-00363: expression 'p_temp_foo.editable.modified_by' cannot be used as an assignment target 
PLS-00363: expression 'p_temp_foo.editable.date' cannot be used as an assignment target 
PLS-00363: expression 'p_temp_foo.editable.modified_by' cannot be used as an assignment target 

prosedürü:

PROCEDURE run_temp_procedure (p_temp_foo IN part_bean, p_member_number IN NUMBER) 
IS 
t_temp_foo part_bean; 
    now DATE; 
    BEGIN 
    now := SYSDATE; 

      p_temp_foo.editable:= t_temp_foo.editable; 
     p_temp_foo.editable.date := SYSDATE; 
     p_temp_foo.editable.modified_by := p_member_number; 


    END run_temp_procedure ; 
+3

Değerleri ya 't_hot_part' olarak atamanız ya da 'p_hot_part' an 'out' parametresini yapmanız gerekir. – Ben

cevap

0

sizin İÇİNDE (giriş) dize atamak için yeni VARCHAR2 tipi değişkeni oluşturun.

procedure sp_name(
ps_list    IN VARCHAR2, 
... 
other IN's and OUT's 
... 
) 
as 

ps_list_copy   VARCHAR2 (32000); 

begin 
ps_list_copy := ps_list; 
... 
do your works with ps_list_copy 
... 
... 
Exception when others then 
.... 
end sp_name;