传入字符串,再转换也可以,如下: (传入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;
哦。谢谢 armu80830(此情可待)如果我的出错处理这样写: update etime.employee set LastLoginTime = iv_LoginDate where employeeid = iv_employeeid; commit; if SQLCODE != 0 then raise_application_error (-20005,'删除出错!请仔细检查然后重试!'); end if; 行不行?我没有加exception.
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;
对了,beckhambobo(beckham),你的方法不能满足我的要求。 我的目的是想判断上面那个sql语名是否成功执行。而不是是否找到数据。 用 exception when others then .... 不知行不行?
对于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>
(传入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;
update etime.employee
set LastLoginTime = iv_LoginDate
where employeeid = iv_employeeid;
commit; if SQLCODE != 0 then
raise_application_error (-20005,'删除出错!请仔细检查然后重试!');
end if;
行不行?我没有加exception.
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;
我的目的是想判断上面那个sql语名是否成功执行。而不是是否找到数据。
用
exception
when others then
....
不知行不行?
------------------------------
2003-8-1SQL>
exception
when others then
....