我通常都是传入字符串然后to_date成日期,或者把字符串to_date成日期然后传入。
如果前台调用,那要确定前台开发工具的日期转换

解决方案 »

  1.   

    传入字符串,再转换也可以,如下:
    (传入iv_LoginDate时用字符串,如:"2003-01-23")create or replace procedure ETIME.UpdateEmployeeLogin (
    iv_employeeid in number,
    iv_LoginDate in varchar2
    )
    AS
    begin
         update etime.employee
         set LastLoginTime = to_date(iv_LoginDate,'YYYY-MM-DD')
         where employeeid = iv_employeeid;
         commit;
    end;
      

  2.   

    我前端日期格式是 yyyy-mon-dd怎么转换呢? oracle里面好像年在后面呀刚接触oracle
      

  3.   

    哦。谢谢 armu80830(此情可待)如果我的出错处理这样写:
         update etime.employee
         set LastLoginTime = iv_LoginDate
         where employeeid = iv_employeeid;
         commit;     if SQLCODE != 0 then
    raise_application_error (-20005,'删除出错!请仔细检查然后重试!');
         end if;
       行不行?我没有加exception.
      

  4.   

    create or replace procedure ETIME.UpdateEmployeeLogin (
    iv_employeeid in number,
    iv_LoginDate in varchar2
    )
    AS
    begin
         update etime.employee
         set LastLoginTime = to_date(iv_LoginDate,'YYYY-MM-DD')
         where employeeid = iv_employeeid;
         commit;
       if sql%notfound then
       dbms_output.put_line('没有记录被修改');
       end if;
    end;
      

  5.   

    谢谢。但是我那种方法可不可以呢?其实我那种方法的思路是来源于sql server,只需直接判断SQLCODE的取值...如果可以的话,那么在好多情况下都可以使用。
      

  6.   

    对了,beckhambobo(beckham),你的方法不能满足我的要求。
    我的目的是想判断上面那个sql语名是否成功执行。而不是是否找到数据。

    exception
       when others then
        ....
    不知行不行?
      

  7.   

    对于yyyy-mon-dd格式,我刚才在8i中测试过,供参考===========================================================SQL> select to_date('2003-08-01','yyyy-mon-dd') from dual;select to_date('2003-08-01','yyyy-mon-dd') from dualORA-01843: 无效的月份SQL> select to_date('2003-8-01','yyyy-mon-dd') from dual;select to_date('2003-8-01','yyyy-mon-dd') from dualORA-01843: 无效的月份SQL> select to_date('2003-Aug-01','yyyy-mon-dd') from dual;select to_date('2003-Aug-01','yyyy-mon-dd') from dualORA-01843: 无效的月份SQL> select to_date('2003-8月-01','yyyy-mon-dd') from dual;TO_DATE('2003-8月-01','YYYY-MO
    ------------------------------
    2003-8-1SQL>
      

  8.   

    判断是否更新错语,可以这样的
    exception
       when others then
        ....