在oracle中创建一个存储过程,来循环获取a表中存放的查询sql语句并一条一条的执行该sql语句并存下来。

2022-04-17 社会 107阅读
CREATEORREPLACEPACKAGEBODYPKG_A_TESTPACKAGEIS
PROCEDUREPKG_A_TESTPROCEDURE(PRM_参数INVARCHAR2,
PRM_返回值OUTNUMBER,
PRM_错误信息OUTVARCHAR2)IS
TYPECURSOR_TYPEISREFCURSOR;
CUR_SQLCURSOR_TYPE;

TYPETYP_REC_INFOISRECORD(
COLUMNVARCHAR2(1000));
LREC_INFOTYP_REC_INFO;

BEGIN
PRM_返回值:=0;

--循环获取查询SQL
FORREC_SQLIN(SELECT查询SQLFROM存放SQL的表WHERE条件)LOOP

BEGIN
OPENCUR_SQLFORREC_SQL.查询SQL;
LOOP
--获取查询的信息
FETCHCUR_SQL
INTOLREC_INFO;--存放查询结果,这里只针对单列的查询结果

--如果没有取到退出
EXITWHENCUR_SQL%NOTFOUND;

ENDLOOP;
CLOSECUR_SQL;
END;

ENDLOOP;

EXCEPTION
WHENOTHERSTHEN
PRM_返回值:=-1;
PRM_错误信息:='执行PKG_A_TESTPROCEDURE出错';
ENDPKG_A_TESTPROCEDURE;
ENDPKG_A_TESTPACKAGE;

按照你的思路写的,具体需要根据你自己实际需求修改扩充一下
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com