在一段Proc程序中,我用:
EXEC SQL SELECT to_date(:e_date1, 'DDMONYY') - to_date(:s_date1, 'DDMONYY') INTO :count FROM DUAL;

if (count >= 180)
来确保e_date1和s_date1代表的时间间隔在180天之内。请问这里是否有漏洞风险?谢谢!

解决方案 »

  1.   

    to_date oracel已经帮你测试过了,什么,闰年2月平年2月啊。什么的,所以算出的时间肯定没问题。。两个日期相减,可能出现正负(+/-)号是不是可以考虑加上绝对值。。这样你在判断〉=180 时能保证它永远是正的
      

  2.   

    我又改了下EXEC SQL SELECT to_date(:e_date1, 'DDMONYY') - to_date(:s_date1, 'DDMONYY') INTO :count FROM DUAL WHERE ROWNUM=1;
    是否还有其它风险?比如是否多少年之后这个就会出问题?
      

  3.   

    汗rownum是会变得,它是出库的时候的序号。。楼主啊
      

  4.   


    您说的是rowid吧?rownum表示的行数