参考:
create or replace procedure SP_CR(V_WLBMC IN STRING,V_LJBMC IN STRING) IS TYPE c_curtype IS REF CURSOR;
c_cur c_curtype;
str STRING(2000):='';
v_tname col.tname%TYPE;
v_cname col.cname%TYPE;
v_coltype col.coltype%TYPE;
v_type t_zdb.lx%TYPE;
BEGIN
str:='delete from t_zdb where wlbmc='''||v_wlbmc||'''';
EXECUTE IMMEDIATE str;
str:='delete from t_sjb where wlbmc='''||v_wlbmc||'''';
EXECUTE IMMEDIATE str;
str:='insert into t_sjb(wlbmc,ljbmc,cxbs,gbbs)VALUES'||
'('''||v_wlbmc||''','''||TRIM(v_ljbmc)||''',''Y'',''N'')';
EXECUTE IMMEDIATE str;
OPEN c_cur FOR SELECT tname,cname,coltype FROM col WHERE tname=''||V_WLBMC||'';
LOOP
FETCH c_cur INTO v_tname,v_cname,v_coltype;
EXIT WHEN c_cur%NOTFOUND;
v_type:=v_coltype;
IF TRIM(v_coltype)='CHAR' OR TRIM(v_coltype)='VARCHAR2' THEN
v_type:='STRING';
ELSIF TRIM(v_coltype)='FLOAT' OR TRIM(v_coltype)='LONG' OR TRIM(v_coltype)='NUMBER' THEN
v_type:='NUMBER';
ELSIF TRIM(v_coltype)='DATE' THEN
v_type:='DATE';
END IF;
str:='insert into t_zdb(wlbmc,wlzdm,sfcxx,lx,qzfs,ljzdm)values('''||v_tname||''','''||v_cname||''','||
'''Y'','''||v_type||''',''²éѯ'',''ll'')';
EXECUTE IMMEDIATE str;
END LOOP;
CLOSE c_cur;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
RAISE;
end SP_CR;
/
create or replace procedure SP_CR(V_WLBMC IN STRING,V_LJBMC IN STRING) IS TYPE c_curtype IS REF CURSOR;
c_cur c_curtype;
str STRING(2000):='';
v_tname col.tname%TYPE;
v_cname col.cname%TYPE;
v_coltype col.coltype%TYPE;
v_type t_zdb.lx%TYPE;
BEGIN
str:='delete from t_zdb where wlbmc='''||v_wlbmc||'''';
EXECUTE IMMEDIATE str;
str:='delete from t_sjb where wlbmc='''||v_wlbmc||'''';
EXECUTE IMMEDIATE str;
str:='insert into t_sjb(wlbmc,ljbmc,cxbs,gbbs)VALUES'||
'('''||v_wlbmc||''','''||TRIM(v_ljbmc)||''',''Y'',''N'')';
EXECUTE IMMEDIATE str;
OPEN c_cur FOR SELECT tname,cname,coltype FROM col WHERE tname=''||V_WLBMC||'';
LOOP
FETCH c_cur INTO v_tname,v_cname,v_coltype;
EXIT WHEN c_cur%NOTFOUND;
v_type:=v_coltype;
IF TRIM(v_coltype)='CHAR' OR TRIM(v_coltype)='VARCHAR2' THEN
v_type:='STRING';
ELSIF TRIM(v_coltype)='FLOAT' OR TRIM(v_coltype)='LONG' OR TRIM(v_coltype)='NUMBER' THEN
v_type:='NUMBER';
ELSIF TRIM(v_coltype)='DATE' THEN
v_type:='DATE';
END IF;
str:='insert into t_zdb(wlbmc,wlzdm,sfcxx,lx,qzfs,ljzdm)values('''||v_tname||''','''||v_cname||''','||
'''Y'','''||v_type||''',''²éѯ'',''ll'')';
EXECUTE IMMEDIATE str;
END LOOP;
CLOSE c_cur;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
RAISE;
end SP_CR;
/
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货