dtDate := add_months(dtDate,1);

解决方案 »

  1.   

    dtDate 是in date的,当然不能赋值。改成in out就可以了。
      

  2.   

    dtDate := add_months(dtDate,1);
    错误提示:
    表达式 'DTDATE' 不能用作赋值目标
      

  3.   

    aaaaa(dtDate in out date,
      

  4.   

    SQL> execute aaaaa('2003-01-01','2003-12-01','410100','','');
    BEGIN aaaaa('2003-01-01','2003-12-01','410100','',''); END;            *
    ERROR 位于第 1 行:
    ORA-06550: 第 1 行, 第 13 列:
    PLS-00363: 表达式 '2003-01-01' 不能用作赋值目标
    ORA-06550: 第 1 行, 第 7 列:
    PL/SQL: Statement ignored
    SQL> execute aaaaa(to_date('2003-01-01','yyyy-mm-dd'),to_date('2003-12-01','yyyy-mm-dd'),'410100',''
    ,'');
    BEGIN aaaaa(to_date('2003-01-01','yyyy-mm-dd'),to_date('2003-12-01','yyyy-mm-dd'),'410100','',''); E            *
    ERROR 位于第 1 行:
    ORA-06550: 第 1 行, 第 13 列:
    PLS-00363: 表达式 'TO_DATE' 不能用作赋值目标
    ORA-06550: 第 1 行, 第 7 列:用上面两种方法都有问题,怎么办?分不够加!
      

  5.   

    调用的时候用一个变量。
    aaaaa(dtDate in out date,...declare
     dt_date DATE;
    BEGIN 
    aaaaa(dt_date,...
      

  6.   

    SQL> declare dd date;
      2  dd:=to_date('2003-01-01','yyyy-mm-dd');
      3   begin
      4   aaaaa(dd,to_date('2003-12-01','yyyy-mm-dd'),'410100','','');
      5   end;
      6  /
    dd:=to_date('2003-01-01','yyyy-mm-dd');
      *
    ERROR 位于第 2 行:
    ORA-06550: 第 2 行, 第 3 列:
    PLS-00103: 出现符号 "="在需要下列之一时:
    constantexception
    <an identifier><a double-quoted delimited-identifier>table
    LONG_doublerefchartimetimestampintervaldatebinarynational
    characternchar
    符号 "<an identifier>" 被替换为 "=" 后继续。
      

  7.   

    to :whan1234(小韩) 我上面还有问题吗?