执行下面脚本是出现ORA-06502: PL/SQL: 数字或值错误 ,错误所指的内容为红色区域,不知哪位大侠能帮忙给看看是什么原因,感激不尽
/*-----导入组织结构------*/
declare
tmp_guid varchar2(30);
sjzz_guid varchar2(30);
cursor cr_getzz is
select * from zc_fin.dm_zz where zzdm like '01%' and jl_sc_bz='0' order by zzdm,zzcc;
tmp_cr cr_getzz%rowtype;
begin
open cr_getzz;
loop
fetch cr_getzz into tmp_cr;
exit when cr_getzz%notfound;
tmp_guid := sys_guid()||'-'||tmp_cr.zzmc;
--在临时表中记录guid和zzhh的对应关系
insert into SYS_ORGANIZATIONS_FIN values(tmp_guid,tmp_cr.jl_hh,tmp_cr.zzmc);
commit;
--获取当前单位上级组织的guid号
if(tmp_cr.sjzz_hh <> -1) then
select org_guid into sjzz_guid from SYS_ORGANIZATIONS_FIN where zz_hh=tmp_cr.sjzz_hh;
--插入本条记录
insert into SYS_ORGANIZATIONS(ORG_GUID,ORG_NAME,ORG_TITLE,ORG_PARENT) values(tmp_guid,tmp_guid,tmp_cr.zzmc,sjzz_guid);
end if;
commit;
end loop;
close cr_getzz;
commit;
end;
/*-----导入组织结构------*/
declare
tmp_guid varchar2(30);
sjzz_guid varchar2(30);
cursor cr_getzz is
select * from zc_fin.dm_zz where zzdm like '01%' and jl_sc_bz='0' order by zzdm,zzcc;
tmp_cr cr_getzz%rowtype;
begin
open cr_getzz;
loop
fetch cr_getzz into tmp_cr;
exit when cr_getzz%notfound;
tmp_guid := sys_guid()||'-'||tmp_cr.zzmc;
--在临时表中记录guid和zzhh的对应关系
insert into SYS_ORGANIZATIONS_FIN values(tmp_guid,tmp_cr.jl_hh,tmp_cr.zzmc);
commit;
--获取当前单位上级组织的guid号
if(tmp_cr.sjzz_hh <> -1) then
select org_guid into sjzz_guid from SYS_ORGANIZATIONS_FIN where zz_hh=tmp_cr.sjzz_hh;
--插入本条记录
insert into SYS_ORGANIZATIONS(ORG_GUID,ORG_NAME,ORG_TITLE,ORG_PARENT) values(tmp_guid,tmp_guid,tmp_cr.zzmc,sjzz_guid);
end if;
commit;
end loop;
close cr_getzz;
commit;
end;
就是说tmp_guid := sys_guid()||'-'||tmp_cr.zzmc;这句中的语句有数据类型错误!