2012-04-02 9 views
21

हैलो यह सुनिश्चित नहीं है कि मुझे यह त्रुटि क्यों मिल रही है। मूल रूप से मैं इन तीन लाइनों में इसे पाने:ओरेकल पीएलएस -00363: अभिव्यक्ति '' असाइनमेंट लक्ष्य के रूप में उपयोग नहीं किया जा सकता

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 

प्रक्रिया:

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

आपको या तो 't_hot_part' मानों को असाइन करना होगा या 'p_hot_part''' आउट' पैरामीटर बनाना होगा। – Ben

उत्तर

35

p_temp_foo एक IN पैरामीटर है। प्रकृति से, ये केवल पढ़े जाते हैं। आप इसे IN OUT पैरामीटर, या OUT पैरामीटर के रूप में परिभाषित कर सकते हैं।

अधिक जानकारी के लिए यहाँ देखें: http://plsql-tutorial.com/plsql-passing-parameters-procedure-function.htm

+1

मेरे भाई की बहुत सराहना की –

0

अपने में (इनपुट) स्ट्रिंग आवंटित करने के लिए नई VARCHAR2 प्रकार चर उत्पन्न करें।

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; 
संबंधित मुद्दे

 संबंधित मुद्दे