mysql储存过程怎么装换成oracle的储存过程。。。。

[复制链接]
查看11 | 回复3 | 2021-1-27 06:50:23 | 显示全部楼层 |阅读模式
BEGIN
DECLAREaaVARCHAR(50);
DECLAREflagINT;
declarecur1CURSORforselect`date`fromsp_workGROUPBY`date`;
DECLARECONTINUEHANDLERFORNOTFOUNDSETflag=1;
SETflag=0;
DROPTABLEIFEXISTS`temp_work`;
CREATETEMPORARYTABLEtemp_work(
todayVARCHAR(10),
totalINTEGER,
status1INT,
status2INT,
status3INT,
status4INT,
status5INT
)ENGINE=MEMORY;
INSERTINTOtemp_work(today,total)SELECT`date`,count(*)fromsp_workwherecompanyno=company_noGROUPBY`date`ORDERBY`date`descLIMITfirstRow,listRow;
OPENcur1;
REPEAT
FETCHcur1INTOaa;
UPDATEtemp_workSETstatus1=(SELECTcount(*)FROMsp_workWHERE`date`=aaand`status`=1andcompanyno=company_no)WHEREtoday=aa;
UPDATEtemp_workSETstatus2=(SELECTcount(*)FROMsp_workWHERE`date`=aaand`status`=2andcompanyno=company_no)WHEREtoday=aa;
UPDATEtemp_workSETstatus3=(SELECTcount(*)FROMsp_workWHERE`date`=aaand`status`=3andcompanyno=company_no)WHEREtoday=aa;
UPDATEtemp_workSETstatus4=(SELECTcount(*)FROMsp_workWHERE`date`=aaand`status`=4andcompanyno=company_no)WHEREtoday=aa;
UPDATEtemp_workSETstatus5=(SELECTcount(*)FROMsp_workWHERE`date`=aaand`status`=5andcompanyno=company_no)WHEREtoday=aa;
UNTILflag
ENDREPEAT;
CLOSEcur1;
SELECT*fromtemp_work;
END
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:50:23 | 显示全部楼层
语法差异太大,修改地方太多,你可以简单的看看语法,修改一下,然后再上来问问
比如,ORACLE不能直接执行SELECT*fromtemp_work;要通过游标来接收

回复

使用道具 举报

千问 | 2021-1-27 06:50:23 | 显示全部楼层
楼主还是说一下,遇到的具体问题吧;
回复

使用道具 举报

千问 | 2021-1-27 06:50:23 | 显示全部楼层
我现在想把一个mysql的存储过程装换成oracle的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行