SLELECT * FROM A WHERE DTA_DATE =add_months(trunc(sysdate,'mm'),$$dta_date-2)
其中$$dta_date-2是什么意思呢!?

解决方案 »

  1.   

    有这个用法?
    是$$,还是&&
      

  2.   

    $$还是&&&是oracle里的替代变量。如果有一个&name,在sqlplus执行的时候,会提示你输入一个name对应的值。然后name的值会替代到sql里,这里是替代,不是参数绑定,所以可以替换sql中的静态部分,比如字段名,表名&&也是替代变量,和&一样的功能,不过他是多次替代,下面的例子&的用法
    SQL> select &fieldname from dual;
    输入 fieldname 的值:  sysdate
    原值    1: select &fieldname from dual
    新值    1: select sysdate from dualSYSDATE
    --------------
    07-9月 -09当下一次执行select &fieldname from dual;继续提示你输入fieldname 的值:
    &&的用法
    SQL> select &&fieldname2 from dual;
    输入 fieldname2 的值:  sysdate
    原值    1: select &&fieldname2 from dual
    新值    1: select sysdate from dualSYSDATE
    --------------
    07-9月 -09第一次和&一样,当你第二次输入select &&fieldname2 from dual;
    这时不需要再输入 fieldname2 的值: 
    就直接用上次的值了。因为fieldname2的值已经保存在session里了。当你不想使用这个变量名的时候,你可以用undefine 命令解除他如下
    SQL> undefine fieldname2;再次输入
    SQL> select &&fieldname2 from dual;
    输入 fieldname2 的值:
    又开始然你输入了,因为值已经清掉了。
      

  3.   


    呵呵呵,收集到blog里了小功能,大作用 --- Oracle里的关键字&
    http://blog.csdn.net/inthirties/archive/2009/09/07/4528293.aspx
      

  4.   

    学习了。
    一点问题请教。
    &是oracle的提示符关键字?
    还是sqlplus的关键字呢?
    貌似应该是sqlplus的关键字地说。
    没看过相关的资料,
    不知道是否也可以应用在SQLPlus以外的地方。