資源描述:
《條件分支結(jié)構(gòu)、循環(huán)控制結(jié)構(gòu)和存儲(chǔ)過程--分頁存儲(chǔ)過程oracle》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、條件分支結(jié)構(gòu)、循環(huán)控制結(jié)構(gòu)和存儲(chǔ)過程“分頁存儲(chǔ)過程oracle條件分支結(jié)構(gòu)案例1、編寫一個(gè)過程,可以輸入一個(gè)雇員姓名,如果該雇員的工資低于2000,就給該雇員工資增加10%o/*結(jié)構(gòu):IF條件THEN執(zhí)行語句;ENDIF;*/CREATEORREPLACEPROCEDUREadd_sal_prc(p_nameINVARCHAR2)ISnsalmyemp.sal%TYPE;BEGINSELECTsalINTOn_salFROMmyempWHEREename=p_name;IFn_sal<2000THENUPDATEmyempSETsal=sal*(14-0.1)WHE
2、REename=p_name;ENDIF;EXCEPTIONWHENNO_DATA_FOUNDTHENDBMS_OUTPUT.put_line('未找到相關(guān)信息?');ENDaddsalorc;2、編寫一個(gè)過程,在myemp表中,如果某個(gè)雇員的工資低于2000,就給該雇員工資增加10%。CREATEORREPLACEPROCEDUREupdate_myemp_sal_prcISCURSORc_testISSELECT*FROMmyempFORUPDATE;BEGINFORvar_dataINc_testLOOPIFvar_data.sal<2000THENUPDAT
3、EmyempSETsal=sal*1.1WHERECURRENTOFc_test;ENDIF;ENDLOOP;EXCEPTIONWHENNO_DATA_FOUNDTHENDBMS_OUTPUT.put_lineC未找到相關(guān)信息ENDupdate_myemp_sal_prc;3、編寫一個(gè)過程,可以輸入一個(gè)雇員姓名,如果該雇員的獎(jiǎng)金不是0,就在原來的基礎(chǔ)上增加100,如果獎(jiǎng)金是0,就把該獎(jiǎng)金設(shè)置為200;結(jié)構(gòu):IF條件THEN執(zhí)行語句;ELSE執(zhí)行語句;ENDIF;*/CREATEORREPLACEPROCEDUREupdate_myemp_user_comm_prc(
4、p_nameINVARCHAR2)IScomm_tmpmyemp.comm%TYPE;BEGINSELECTNVL(comm,0)commINTOcomm_tmpFROMmyempWHEREename=p_name;IFcomm_tmp!=0THENUPDATEmyempSETcomm=comm+100WHEREename=p_name;ELSE-UPDATEmyempSETcomm=200WHEREename=p_name;ENDIF;ENDupdate_myemp_user_comm_prc;4、編寫一個(gè)過程,在myemp表中,如果該雇員的獎(jiǎng)金不是0,就在原來的
5、基礎(chǔ)上增加100,如果獎(jiǎng)金是0,就把該獎(jiǎng)金設(shè)置為200;CREATEORREPLACEPROCEDUREupdate_myemp_comm_prcISCURSORc_testISSELECTename,sal,NVL(comm,0)commFROMmyempFORUPDATE;BEGINFORvardataINctestLOOPIFvar_data.comm!=0THENUPDATEmyempSETcomm=comm+100WHERECURRENTOFc_test;ELSEUPDATEmyempSETcomm=200WHERECURRENTOFc_test;ENDI
6、F;ENDLOOP;ENDupdate_myemp_comm_prc;5、編寫一個(gè)過程,可以輸入一個(gè)雇員編號(hào),如果該雇員的職位是PRESIDENT就給他的工資增加1000,如果該雇員的職位是MANAGER就給他的工資的增加500,其它職位的雇員的工資增加200;結(jié)構(gòu):IF條件THEN執(zhí)行語句;ELSIF條件THEN執(zhí)行語句;ELSE執(zhí)行語句;ENDIF;7CREATEORREPLACEPROCEDUREmodify_saljDrc(p_empnoININTEGER)ISvjobmyemp.job%TYPE;BEGINSELECTjobINTOvjobFROMmyem
7、pWHEREempno=p_empno;IFvjob=PRESIDENT*THENUPDATEmyempSETsal=sal+1000WHEREempno=p_empno;ELSIFvjob=?MANAGER*THENUPDATEmyempSETsal=sal+500WHEREempno=p_empno;ELSEUPDATEmyempSETsal=sal+200WHEREempno=p_empno;ENDIF;-ENDmodify_sal_prc;/擴(kuò)展:如果是對(duì)所有雇員的工資進(jìn)行修改,應(yīng)該使用游標(biāo),請(qǐng)參考第2或第4題。循環(huán)語句1、循環(huán)語句LOOP案例,LOOP