--测试空游标 PROCEDURE p_testEmptyCursor IS rowRecord SJ_CD_PERIODS%ROWTYPE; myCursorFirst myCursorType ; myCursorSecond myCursorType; myCursorThird myCursorType; myCursorForth myCursorType; BEGIN --使用notfound(失败) 数据库中不存在限制条件下的数据集 OPEN myCursorFirst FOR SELECT A.* FROM SJ_CD_PERIODS A WHERE A.FPERIODID = '1001' ; IF myCursorFirst%notfound THEN dbms_output.put_line('数据库中不存在FPERIODID为1001的数据集'); ELSE dbms_output.put_line('数据库中存在FPERIODID为1001的数据库'); END IF;
--使用ROWCOUNT(失败)数据库中存在限制条件下的数据集 OPEN myCursorSecond FOR SELECT A.* FROM SJ_CD_PERIODS A WHERE A.FPERIODID = '20112012141202260210001003001002002'; IF myCursorSecond%ROWCOUNT = 0 THEN dbms_output.put_line('数据库中不存在FPERIODID为20112012141202260210001003001002002的数据集'); ELSE dbms_output.put_line('数据库中存在FPERIODID为20112012141202260210001003001002002的数据集'); END IF;
--使用FETCH(成功)数据库中存在限制条件下的数据集 OPEN myCursorThird FOR SELECT A.* FROM SJ_CD_PERIODS A WHERE A.FPERIODID = '20112012141202260210001003001002002'; FETCH myCursorThird INTO rowRecord; IF myCursorThird%NOTFOUND THEN dbms_output.put_line('数据库中不存在FPERIODID为20112012141202260210001003001002002的数据集'); ELSE dbms_output.put_line('数据库中存在FPERIODID为20112012141202260210001003001002002的数据集'); END IF;
--使用FETCH(成功)数据库中不存在限制条件下的数据集 OPEN myCursorForth FOR SELECT A.* FROM SJ_CD_PERIODS A WHERE A.FPERIODID = '1001'; FETCH myCursorForth INTO rowRecord; IF myCursorForth%NOTFOUND THEN dbms_output.put_line('数据库中不存在FPERIODID为1001的数据集'); ELSE dbms_output.put_line('数据库中存在FPERIODID为1001的数据集'); END IF; END;
end TAL_TEST;
myCursorFirst:
--使用notfound(失败) 数据库中不存在限制条件下的数据集 OPEN myCursorFirst FOR SELECT A.* FROM SJ_CD_PERIODS A WHERE A.FPERIODID = '1001' ; IF myCursorFirst%notfound THEN dbms_output.put_line('数据库中不存在FPERIODID为1001的数据集'); ELSE dbms_output.put_line('数据库中存在FPERIODID为1001的数据库'); END IF;
myCursorSecond:
--使用ROWCOUNT(失败)数据库中存在限制条件下的数据集 OPEN myCursorSecond FOR SELECT A.* FROM SJ_CD_PERIODS A WHERE A.FPERIODID = '20112012141202260210001003001002002'; IF myCursorSecond%ROWCOUNT = 0 THEN dbms_output.put_line('数据库中不存在FPERIODID为20112012141202260210001003001002002的数据集'); ELSE dbms_output.put_line('数据库中存在FPERIODID为20112012141202260210001003001002002的数据集'); END IF;
myCursorThird
--使用FETCH(成功)数据库中存在限制条件下的数据集 OPEN myCursorThird FOR SELECT A.* FROM SJ_CD_PERIODS A WHERE A.FPERIODID = '20112012141202260210001003001002002'; FETCH myCursorThird INTO rowRecord; IF myCursorThird%NOTFOUND THEN dbms_output.put_line('数据库中不存在FPERIODID为20112012141202260210001003001002002的数据集'); ELSE dbms_output.put_line('数据库中存在FPERIODID为20112012141202260210001003001002002的数据集'); END IF;
myCursorForth:
--使用FETCH(成功)数据库中不存在限制条件下的数据集 OPEN myCursorForth FOR SELECT A.* FROM SJ_CD_PERIODS A WHERE A.FPERIODID = '1001'; FETCH myCursorForth INTO rowRecord; IF myCursorForth%NOTFOUND THEN dbms_output.put_line('数据库中不存在FPERIODID为1001的数据集'); ELSE dbms_output.put_line('数据库中存在FPERIODID为1001的数据集'); END IF;