代码如下: 看看有没有问题!!!谢谢!!!!!!!create or replace PROCEDURE HOUSINGRENT_INFO_INSERT
(.............)ASv_rybh VARCHAR2(20);BEGIN SELECT RYBH INTO v_rybh FROM RYJBXX where RYBH=rybh;
IF length(v_rybh)<>0 THEN
INSERT INTO RYJBXX(RYBH,GMSFHM,XM,ZJZL,ZJHM,XB,MZ,CSRQ,CSXZ,DJR,DJSJ,DJDW,
DJDWMC,DJRXM,DELFLAG,SENDFLAG,SHFLAG,IMAGE)
VALUES(rybh,gmsfhm,ry_name,zjzl,zjhm,sex,nationality,birth,csxz,djr,to_date(djsj,'YYYY-MM-DD'),djdw,
djdwmc,djrxm,delflag,sendflag,shflag,image);
END IF;
INSERT INTO CHEZFW (CZXXBH,RYJGBH,CZFWBH,YFZGX,ZLRQ,TZRQ,TZYY,CZRQ,CZDW,CZRY,DELFLAG,SENDFLAG)
VALUES(czxxBH,czrBH,czfwBH,yfzgx,to_date(zlrq,'YYYY-MM-DD'),to_date(tzrq,'YYYY-MM-DD'),
tzyy,to_date(czrq,'YYYY-MM-DD'),czdw,czr,delflag,sendflag);
COMMIT;
EXCEPTION
WHEN OTHERS THEN ROLLBACK;
OPEN rfcur FOR SELECT CHEZFW.CZXXBH,RYJBXX.RYBH FROM CHEZFW,RYJBXX WHERE CHEZFW.CZXXBH=czxxbh AND RYJBXX.RYBH=rybh;
END HOUSINGRENT_INFO_INSERT;谢谢大家看看。有没有问题。是不是作为一个事务处理的。
(.............)ASv_rybh VARCHAR2(20);BEGIN SELECT RYBH INTO v_rybh FROM RYJBXX where RYBH=rybh;
IF length(v_rybh)<>0 THEN
INSERT INTO RYJBXX(RYBH,GMSFHM,XM,ZJZL,ZJHM,XB,MZ,CSRQ,CSXZ,DJR,DJSJ,DJDW,
DJDWMC,DJRXM,DELFLAG,SENDFLAG,SHFLAG,IMAGE)
VALUES(rybh,gmsfhm,ry_name,zjzl,zjhm,sex,nationality,birth,csxz,djr,to_date(djsj,'YYYY-MM-DD'),djdw,
djdwmc,djrxm,delflag,sendflag,shflag,image);
END IF;
INSERT INTO CHEZFW (CZXXBH,RYJGBH,CZFWBH,YFZGX,ZLRQ,TZRQ,TZYY,CZRQ,CZDW,CZRY,DELFLAG,SENDFLAG)
VALUES(czxxBH,czrBH,czfwBH,yfzgx,to_date(zlrq,'YYYY-MM-DD'),to_date(tzrq,'YYYY-MM-DD'),
tzyy,to_date(czrq,'YYYY-MM-DD'),czdw,czr,delflag,sendflag);
COMMIT;
EXCEPTION
WHEN OTHERS THEN ROLLBACK;
OPEN rfcur FOR SELECT CHEZFW.CZXXBH,RYJBXX.RYBH FROM CHEZFW,RYJBXX WHERE CHEZFW.CZXXBH=czxxbh AND RYJBXX.RYBH=rybh;
END HOUSINGRENT_INFO_INSERT;谢谢大家看看。有没有问题。是不是作为一个事务处理的。
我是想插入成功,可以查询到每个表是不是存在刚刚插入的值,然后返回判断的。
写在exception 下面 就属于exception的内容了?
Warning(58,3): PLW-06009: 过程 "HOUSINGRENT_INFO_INSERT" OTHERS 处理程序并未在 RAISE 或 RAISE_APPLICATION_ERROR 中终止
你要是想看所插入的是不是执行过程插入的数据 你可以另外查询就可以
IF length(v_rybh) <>0 THEN
INSERT INTO RYJBXX(RYBH,GMSFHM,XM,ZJZL,ZJHM,XB,MZ,CSRQ,CSXZ,DJR,DJSJ,DJDW,
DJDWMC,DJRXM,DELFLAG,SENDFLAG,SHFLAG,IMAGE)
VALUES(rybh,gmsfhm,ry_name,zjzl,zjhm,sex,nationality,birth,csxz,djr,to_date(djsj,'YYYY-MM-DD'),djdw,
djdwmc,djrxm,delflag,sendflag,shflag,image);
END IF;
INSERT INTO CHEZFW (CZXXBH,RYJGBH,CZFWBH,YFZGX,ZLRQ,TZRQ,TZYY,CZRQ,CZDW,CZRY,DELFLAG,SENDFLAG)
VALUES(czxxBH,czrBH,czfwBH,yfzgx,to_date(zlrq,'YYYY-MM-DD'),to_date(tzrq,'YYYY-MM-DD'),
tzyy,to_date(czrq,'YYYY-MM-DD'),czdw,czr,delflag,sendflag);
OPEN rfcur FOR SELECT CHEZFW.CZXXBH,RYJBXX.RYBH FROM CHEZFW,RYJBXX WHERE CHEZFW.CZXXBH=czxxbh AND RYJBXX.RYBH=rybh;
COMMIT; 现在这样写的。可是第一句 select 查询的结果应该为null(表中没有数据),报错:执行存储过程错误:ORA-01403: 未找到任何数据。这应该如何解决呢。
(..., rybh_out OUT number, chezfw OUT number) AS v_rybh number := 0;
BEGIN SELECT COUNT(RYBH) INTO v_rybh FROM RYJBXX where RYBH=rybh; -- if this person doesn't exist in table RYJBXX
IF v_rybh = 0 THEN
-- RYJBXX 人员基本信息?
INSERT INTO RYJBXX(RYBH,GMSFHM,XM,ZJZL,ZJHM,XB,MZ,CSRQ,CSXZ,DJR,DJSJ,DJDW,DJDWMC,DJRXM,DELFLAG,
SENDFLAG,SHFLAG,IMAGE)
VALUES(rybh,gmsfhm,ry_name,zjzl,zjhm,sex,nationality,birth,csxz,djr,to_date(djsj,'YYYY-MM-DD'),
djdw,djdwmc,djrxm,delflag,sendflag,shflag,image);
END IF;
INSERT INTO CHEZFW (CZXXBH,RYJGBH,CZFWBH,YFZGX,ZLRQ,TZRQ,TZYY,CZRQ,CZDW,CZRY,DELFLAG,SENDFLAG)
VALUES(czxxBH,czrBH,czfwBH,yfzgx,to_date(zlrq,'YYYY-MM-DD'),to_date(tzrq,'YYYY-MM-DD'),
tzyy,to_date(czrq,'YYYY-MM-DD'),czdw,czr,delflag,sendflag);
COMMIT;
SELECT COUNT(RYBH) INTO rybh_out FROM RYJBXX where RYBH=rybh;
--SELECT COUNT(CHEZFW.PK_COLUMNS, use ||) INTO chezfw FROM CHEZFW WHERE PK_CONDITIONS;
EXCEPTION
WHEN OTHERS THEN ROLLBACK;
END HOUSINGRENT_INFO_INSERT;