CREATE OR REPLACE PROCEDURE campaignprize_range (Campaignidd number,prizetypeidd number,serverindex VARCHAR2, RETVAL out VARCHAR2) is hashcoded VARCHAR2 (8); Prizetypenum number (6); Prizetypenumold number (6); PRIZETYPENUMC VARCHAR2 (6); TotalCount number (6); Flag number (1); Single number (6); BEGIN flag:=0; RETVAL: = "; single:=0; SELECT count (1) into TotalCount from Mkt_campaignprize a WHERE A.campaignid=campaignidd and A.issend=0 and a.prizetypeid=p Rizetypeidd and a.hashcode like ' | | serverindex| | ' % ' ORDER by a.campaignprizeid ASC; DECLARE CURSOR C1 is SELECT A.hashcode,a.campaignprizeid from Mkt_campaignprize a WHERE A.campaignid=campaignidd and A.issend=0 and A.prizetypeid=prizetypeidd and a.hashcode like ' | | serverindex| | ' % ' ORDER by a.campaignprizeid ASC; BEGIN for R1 in C1 LOOP single:=single+1; If Flag=0 then prizetypenumold:= to_number (substr (r1.hashcode,3,6)); RETVAL: =prizetypenumold; If Totalcount=siNgle then RETVAL: =retval| | ', ' | | prizetypenumold| | ' $ '; End If; Flag:=1; else prizetypenum:=prizetypenumold+1; Prizetypenumc:=lpad (prizetypenum,6, ' 0 '); hashcoded:=serverindex| | PRIZETYPENUMC; If Hashcoded=r1.hashcode then prizetypenumold:=prizetypenum; else RETVAL: =retval| | ', ' | | prizetypenumold| | ' $ '; prizetypenumold:= To_number (substr (r1.hashcode,3,6)); RETVAL: =retval| | Prizetypenumold; End If; If Totalcount=single then RETVAL: =retval| | ', ' | | prizetypenumold| | ' $ '; End If; End If; END LOOP; END; Exception when others then RETVAL: = ' E ' | | SUBSTR (SQLERRM, 1, 600); END Campaignprize_range;
Get order arrangement