create or replace procedure PRO_UPDATE_BITH is
--v_bit number(2);
nls varchar2(100);
--v_khnumber mt_kh.khnumber%type;
/*CURSOR cur_length IS
select length(khnumber), khnumber from mt_kh t where t.birth is null;*/
begin
nls := 'alter session set nls_date_format="YYYY-MM-DD"';
EXECUTE IMMEDIATE nls;
commit;
/*open cur_length;
loop
fetch cur_length
into v_bit, v_khnumber;
EXIT WHEN cur_length%NOTFOUND;
if v_bit = 18 then*/
update mt_kh
set birth = to_char(to_date(substr(khnumber, 7, 8), 'yyyy-mm-dd'))
where birth is null
and length(khnumber) = 18 and khnumber is not null;
commit;
update mt_kh
set birth = to_char(to_date('19' || substr(khnumber, 7, 6),
'yyyy-mm-dd'))
where birth is null
and length(khnumber) = 15 and khnumber is not null;
commit;
/* elsif v_bit = 15 then
-- else
update mt_kh
set birth = to_char(to_date('19' || substr(v_khnumber, 7, 6),
'yyyy-mm-dd'))
where birth is null;
commit;*/
-- end if;
--end loop;
--close cur_length;
end;
--v_bit number(2);
nls varchar2(100);
--v_khnumber mt_kh.khnumber%type;
/*CURSOR cur_length IS
select length(khnumber), khnumber from mt_kh t where t.birth is null;*/
begin
nls := 'alter session set nls_date_format="YYYY-MM-DD"';
EXECUTE IMMEDIATE nls;
commit;
/*open cur_length;
loop
fetch cur_length
into v_bit, v_khnumber;
EXIT WHEN cur_length%NOTFOUND;
if v_bit = 18 then*/
update mt_kh
set birth = to_char(to_date(substr(khnumber, 7, 8), 'yyyy-mm-dd'))
where birth is null
and length(khnumber) = 18 and khnumber is not null;
commit;
update mt_kh
set birth = to_char(to_date('19' || substr(khnumber, 7, 6),
'yyyy-mm-dd'))
where birth is null
and length(khnumber) = 15 and khnumber is not null;
commit;
/* elsif v_bit = 15 then
-- else
update mt_kh
set birth = to_char(to_date('19' || substr(v_khnumber, 7, 6),
'yyyy-mm-dd'))
where birth is null;
commit;*/
-- end if;
--end loop;
--close cur_length;
end;