create or replace procedure **** (P_DATE VARCHAR2 DEFAULT NULL) is请问这个P_DATE是什么意思?我看了过程的内容,对P_DATE也没有任何的定义

解决方案 »

  1.   

    [Quote=引用楼主 translu 的回复:]
    create or replace procedure **** (P_DATE VARCHAR2 DEFAULT NULL) is请问这个P_DATE是什么意思?我看了过程的内容,对P_DATE也没有任何的定义
    后面还有一句
    V_DATE := NVL(P_DATE, TO_CHAR(SYSDATE - 1, 'YYYYMMDD'));
    那么最后这个v_date 是等于多少?  
      

  2.   

    V_DATE = NVL(P_DATE,前一天)
    如果P_DATE 为空 就去 系统时间的前一天 如果不为空 就去P_DATEP_DATE 是参数 就类似于java 里函数传入的参数  
      

  3.   

    V_DATE := NVL(P_DATE, TO_CHAR(SYSDATE - 1, 'YYYYMMDD'……
    上面的意思是当P_DATE为空则V_DATE 就是系统日期的钱一天。
    V_DATE 的值是系统日期的前一天,
    如系统为今天 那V_DATE就是2010-05-23
    SQL> select to_char(sysdate-1,'yyyy-mm-dd') from dual;TO_CHAR(SY
    ----------
    2010-05-23
      

  4.   


    其实,这儿就是P_DATE定义的地方,
    P_DATE:过程参数名,VARCHAR2:数据类型,DEFAULT NULL:默认值为空看看基础的书