版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、PL/SQL編程摸底考試日期:2010年10月18日考生姓名:試題一:從2個table中產(chǎn)生報表,generatereportfrom2tables假定有2個tables:checking和savings,止匕2個tables已注入數(shù)據(jù):1 號顧客有 checking accout賬號為10001,同時還有 savings account賬號為CheckingSavingsCus_IDAcct_NoCus_IDAcct_No110001150001210002350002500012 號顧客有 checking accout3 號顧客有 savings account賬號為10002,但是沒有
2、savingsaccount賬號為50002,但是沒有checkingaccount寫SQL語句,產(chǎn)生這樣的報表:UseSQLstatementtogeneratethisreportCus_IDCheckingAccountSavingsAccount11000150001210002350002selecta.CusID,a.AcctNoChecking_Account,b.Acct_NoSavings_Accountfromcheckinga,savingsbwherea.Cus_ID=b.Cus_ID(+)unionselecta.Cus_ID,a.Acct_NoChecking_Ac
3、count,b.Acct_NoSavings_Accountfromcheckinga,savingsbwherea.CusID(+)=b.CusID;用jion更簡單試題二:從1個table中產(chǎn)生報表,generatereportfrom1table情況與上題相似,但是數(shù)據(jù)在1個table里:Datastoredin1tableinsteadof2tablesAccountsCus_IDAcct_NoAcct_Type110001Checking150001Savings210002Checking350002Savings寫SQL語句,產(chǎn)生這樣的報表(與上題相同的報表):selecta.r
4、ow id,max (decode(a.firstname,max (decode(a.firstname,UseSQLstatementtogeneratethisreportCus_IDCheckingAccountSavingsAccount11000150001210002350002selectb.Row_id,max(casewhenb.firstname='Savings'end),max(casewhenb.firstname='Checking'end)fromtest1bbyb.Rowid;'C
5、hecking',,null)CheckingAccount,'Savings',,null)SavingsAccountfromtest1aroupbya.Rowid;(3)報表 report試題三:(1)數(shù)據(jù)同步datasync,(2)觸發(fā)器trigger,有2個表:Account和payment:Acct_No:賬號AccountnumberDate_created:賬戶創(chuàng)建日期DateacountwascreatedAmount:應(yīng)付的金額AmountchargedSerial_No:支付的序歹U號serialnumberforpayme
6、ntPayment:支付金額amountpaidDate_paid:支付日期DatepaidAccountAcct_NoDate_CreatedAmount10002010-1-1490010012010-4-1550010022010-6-20200010032010-8-4300010042010-10-104400PaymentAcct_NoSerial_NoPaymentDate_paid100014502010-1-30100024502010-2-22100213002010-7-20100223002010-8-20100233002010-9-301003110002010-9
7、-9我們需要這樣一份應(yīng)收款分類報表:reportWeneed a categorized account receivableBalanceAcct_NoLast_act_date<=30days>30days10012010-4-1550010022010-9-30110010032010-9-9200010042010-10-104400Last_act_date:最近的活動日期,即最近的支付日期,如無支付,就用賬戶創(chuàng)建日期1000:余額為零,不顯不'在報表中1001:無paymnet,它的賬戶創(chuàng)建日期就是最近的活動日期,已超過30天1002:余額為1400,其最近的p
8、ayment是2010-9-30,在30天內(nèi)1003:余額為2000,其最近的payment是2010-9-9,已超過30天1004:無paymnet,它的賬戶創(chuàng)建日期就是最近的活動日期,在30天內(nèi)。由于這樣的SQL書寫比較復(fù)雜,而且運行的時間也會比較長,有人建議在Account表中增加2個字段:Pay_sum每個賬戶的payment的總和Last_act_date:最近的活動日期,即最近的支付日期,如無支付,就用賬戶創(chuàng)建日期AccountAcct_NoDate_CreatedAmountPay_sumLast_act_date10002010-1-1490010012010-4-155001
9、0022010-6-20200010032010-8-4300010042010-10-104400試題三:(1)數(shù)據(jù)同步datasync(兩種方法都要做)數(shù)據(jù)同步方法data sync. method 1創(chuàng)建Storedprocedure,用Cursor游標來逐行從payment表中拿到數(shù)據(jù),更新Account表中的Pay_sum和Last_act_date。Usecursortoupdatepay_sumandlast_act_daterowbyrow.createorreplaceprocedureAccount_datasync_Pro(一一aSuccoutinteger,aReaso
10、noutvarchar2)is|vSqlvarchar2(2000);vCursysrefcursor;vAcctNovarchar2(20);vPaysuminteger;vLastactdatedate;beginvSql:='selectb.AcctNo,sum(b.Payment)Paysum,max(b.Datepaid)LastactdatefromPaymentbgroupbyb.AcctNo'openvCurforvSqlfetchvCurintovAcctNo,vPaysum,vLastactdate;exitwhenvCur%notfound;vSql:=&
11、#39;updateAccountaseta.Paysum=:Paysum,a.Lastactdate=:Lastactdatewherea.AcctNo=:AcctNo'executeimmediatevSqlusingvPaysum,vLastactdate,vAcctNo;closevCur;exceptionend;數(shù)據(jù)同步方法二:datasycn.Method2不用Cursor,直接用UPDATES句從payment表中拿到數(shù)據(jù),更新Account表中的Pay_sum和Last_act_date。Donotusecursor,useupdatestatement.update
12、Accountaset(a.Pay_sum,a.Last_act_date)=(一一selectc.Paysum,c.Lastactdatefromselectb.Acct_No,sum(b.Payment)Pay_sum,max(b.Date_paid)Last_act_datefromPaymentbgroupbyb.AcctNo)cwherea.Acct_No=c.Acct_No);一一試題三:(2)創(chuàng)建觸發(fā)器createtriiger創(chuàng)建trigger,以后每次payment表更新時,account表中的Pay_sum和Last_act_date將會自動更新。Createatrigge
13、rtoupdatepay_sumandlast_act_dateautomaticallycreateorreplacetriggerAccountdatasynctrigbeforeinsertorupdateonPaymentforeachrowdeclarevUserNamevarchar2(30);beginupdateAccountaset(a.Pay_sum,a.Last_act_date)=a.Pay_sum+:new.Payment,:new.Datepaidwherea.AcctNo=:new.AcctNo;end;試題三:(3)產(chǎn)生報表,應(yīng)收款分類報表:在數(shù)據(jù)同步程序運行完
14、畢后,寫SQL語句來產(chǎn)生應(yīng)收款分類報表報表:UseSQLstatementtogeneratethiscategorizedaccountreceivablereport:BalanceAcct_NoLast_act_date<=30days>30days10012010-4-1550010022010-9-30110010032010-9-9200010042010-10-104400selecta.Acct_No,a.Lastactdate,(casewhensysdate-a.Last_act_date<=30thena.Amount-Pay_sumend)<=30days,(casewhensysdate-a.Lastactdate>30thena.Amount-Paysumend)>30daysfromAccounta;附加題一:比較數(shù)據(jù)同步的方法一和方法二,有什么優(yōu)勢和劣勢?在什么情況下用方法一?在什么情況下用方法二?Comparemethod1andme
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中職人工智能技術(shù)應(yīng)用(AI基礎(chǔ)操作)試題及答案
- 2025年大學(xué)會展經(jīng)濟與管理(管理實務(wù))試題及答案
- 2025年高職建筑工程技術(shù)(建筑施工組織與管理)試題及答案
- 2025年高職水產(chǎn)生產(chǎn)管理應(yīng)用(應(yīng)用技術(shù))試題及答案
- 2025年大學(xué)大三(物流信息技術(shù))物流信息系統(tǒng)設(shè)計試題及答案
- 2025年高職第二學(xué)年(紡織工程技術(shù))紡紗工藝基礎(chǔ)階段測試試題及答案
- 2025年大學(xué)音樂學(xué)(音樂史)試題及答案
- 2025年中職(地質(zhì)勘查)地質(zhì)勘查技術(shù)試題及答案
- 2025年大學(xué)大一(經(jīng)濟學(xué)基礎(chǔ))單元基礎(chǔ)測試卷
- 2025年高職(船舶動力工程技術(shù))船舶動力裝置維護試題及答案
- 2025福建中閩能源股份有限公司招聘6人筆試歷年參考題庫附帶答案詳解
- 閥門電動執(zhí)行器知識培訓(xùn)課件
- DB42∕T 1785.1-2021 水生蔬菜良種繁育技術(shù)規(guī)程 第1部分:藕蓮和子蓮
- 2025年福建會考政治試卷及答案
- 趙爽證明勾股定理課件
- DB31∕T 1450-2023 旅游碼頭服務(wù)基本要求
- 2024-2025學(xué)年人教版數(shù)學(xué)七年級上學(xué)期期末考試測試卷
- 南寧陳教練2026年版考試大綱廣西專升本與職教高考(財經(jīng)商貿(mào)大類)考試大綱對比分析及備考攻略
- 滅菌物品裝載課件
- 2025至2030中國電力設(shè)備檢測行業(yè)項目調(diào)研及市場前景預(yù)測評估報告
- 2025上半年軟考系統(tǒng)架構(gòu)設(shè)計師考試真題及答案
評論
0/150
提交評論