【问题标题】:Oracle PLS-00363: expression '' cannot be used as an assignment targetOracle PLS-00363:表达式“”不能用作赋值目标
【发布时间】:2012-04-16 03:51:16
【问题描述】:

您好,不知道为什么我会收到此错误。 基本上我在这三行中得到它:

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 ;

【问题讨论】:

  • 您需要将值分配给t_hot_part 或将p_hot_part 设为out 参数。

标签: sql oracle plsql


【解决方案1】:

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

有关更多信息,请参见此处: http://plsql-tutorial.com/plsql-passing-parameters-procedure-function.htm

【讨论】:

    【解决方案2】:

    生成新的 VARCHAR2 类型变量以分配您的 IN(输入)字符串。

    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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-28
      • 2014-04-11
      • 1970-01-01
      • 1970-01-01
      • 2019-12-12
      • 2019-09-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多