jjyv70 2011年10月13日
运行不出结果 是不是进了死循环什么的啊 求高手解决
create or replace procedure llx_22 is
v_bir date;
v_id employ.id%TYPE;
CURSOR c_emp
IS SELECT s_fun12(idcard),id
FROM employ;
BEGIN
OPEN c_emp;
FETCH c_emp INTO v_bir,v_id;
WHILE c_emp %FOUND LOOP
BEGIN
UPDATE employ
SET birthday = v_bir
WHERE id = v_id;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('找不到ID‘|| v_id||’');
FETCH c_emp INTO v_bir,v_id;
END;
END LOOP;
CLOSE c_emp;
END;


create function s_fun12(card varchar2) return
date is idate date;
begin
IF length(card)=18 THEN
select to_Date('19'||substr(card,7,8),'yyyy-mm-dd') into idate from dual;
ELSIF length(card)=15 THEN
select to_Date(substr(card,7,6),'yyyy-mm-dd') into idate from dual;
ELSE
DBMS_OUTPUT.PUT_LINE('身份证号错误');
END IF;
return idate;
END;


运行不出结果 是不是进了死循环什么的啊 求高手解决 表里面有 id name idcard date
...全文
49 点赞 收藏 13
写回复
13 条回复

还没有回复,快来抢沙发~

发动态
发帖子
基础和管理
创建于2007-09-28

7175

社区成员

9.5w+

社区内容

Oracle 基础和管理
社区公告
暂无公告