Sql Oracle PLS-00363:表达式'';不能用作分配目标

Sql Oracle PLS-00363:表达式'';不能用作分配目标,sql,oracle,plsql,Sql,Oracle,Plsql,你好,我不知道为什么我会出现这个错误。 基本上,我从以下三行中得到: 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_fo

你好,我不知道为什么我会出现这个错误。 基本上,我从以下三行中得到:

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 ;

p_temp_foo
是中的一个
。本质上,这些是只读的。您可以将其定义为
IN-OUT
参数或
OUT
参数

有关更多信息,请参见此处:

生成新的VARCHAR2类型变量以分配输入字符串


您需要将值分配给
t\u hot\u part
或使
p\u hot\u part
成为
out
参数。
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;