oracle_存储过程练习题

oracle_存储过程练习题

ID:6336309

大小:380.50 KB

页数:8页

时间:2018-01-10

oracle_存储过程练习题_第1页
oracle_存储过程练习题_第2页
oracle_存储过程练习题_第3页
oracle_存储过程练习题_第4页
oracle_存储过程练习题_第5页
资源描述:

《oracle_存储过程练习题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1.创建用户kaifa(密码亦为kaifa),并分配connect,createtable,resource权限。CREATEuserKAIFAIDENTIFIEDBYKAIFADEFAULTTABLESPACEHOSDATATEMPOARYTABLESPACETEMPDATA;GRANTCONNECT,CREATETABLE,RESOURCETOKAIFA2.在做报表统计时,需要根据报表日期和币种从概要表中查询本期余额。概要表(CCB_GYB)信息如下:ACCOUNTING_DATEDATE报表日期(唯一索引)RMB_YTD_BALANCENUMBER人民币

2、余额CNY_YTD_BALANCENUMBER本位币余额USD_YTD_BALANCENUMBER外币折美元余额其中币种代码如下:--RMB人民币--CNY本位币--USD外币折美元如果币种为RMB,则取出人民币余额作为本期余额;为CNY,则取本位币余额;为USD则取外币折美元余额。请编写一个函数GetCurrBal(qrp_rqINVARCHAR2,--报表日期qrp_codeINVARCHAR2--币种)CREATEORREPLACEFUNCTIONGetCurrBal(Vqrp_rqDate,--报表日期Vqrp_codeVARCHAR2--币种)RET

3、URNNUMBERISVAMOUNTNUMBER;VDATEDate;BEGINSELECTACCOUNTING_DATEINTOVDATEFROMCCB_GYBWhereACCOUNTING_DATE=Vqrp_rq;IFVqrp_code='RMB'THENSELECTRMB_YTD_BALANCEINTOVAMOUNTFROMCCB_GYBWHEREVqrp_code='RMB'ANDACCOUNTING_DATE=VDATE;ELSEIFVqrp_code='CNY'THENSELECTCNY_YTD_BALANCEINTOVAMOUNTFROMCCB

4、_GYBWHEREVqrp_code='CNY';ELSESELECTUSD_YTD_BALANCEINTOVAMOUNTFROMCCB_GYBWHEREVqrp_code='USD';ENDIF;ENDIF;COMMIT;RETURNVAMOUNT;END;---对多行处理,用游标---多单行处理,用SELECT实现此功能,并能在sqlplus里调用。其中建表语句如下:createtableCCB_GYB(ACCOUNTING_DATEDATE,RMB_YTD_BALANCENUMBER,CNY_YTD_BALANCENUMBER,USD_YTD_BALAN

5、CENUMBER);创建索引:createuniqueindexCCB_GYB_IDXonCCB_GYB(ACCOUNTING_DATE);1.假设有张学生成绩表(CJ)如下[姓名][学科][成绩]张三语文80张三数学86张三英语75李四语文78李四数学85李四英语78现有需求如下:(1)要求统计分数段的人数。显示结果为:[成绩]    [人数]0<成绩<60    060<成绩<80    080<成绩<100  5CREATEORREPLACEProcedureSCOUNTIsVCOUNT1Varchar2(10);VCOUNT2Varchar2(10);

6、VCOUNT3Varchar2(10);BeginSelectCount(*)IntoVCOUNT1FromCJWhereSCOREBetween0And60;SelectCount(*)IntoVCOUNT2FromCJWhereSCOREBetween61And80;SelectCount(*)IntoVCOUNT3FromCJWhereSCOREBetween81And100;dbms_output.put_line('分数'

7、

8、‘‘

9、

10、‘人数’);dbms_output.put_line('0<成绩<60'

11、

12、‘‘

13、

14、VCOUNT1);dbms_out

15、put.put_line('60<成绩<80'

16、

17、‘‘

18、

19、VCOUNT2);dbms_output.put_line('81<成绩<100'

20、

21、‘‘

22、

23、VCOUNT3);End;(2)要求根据姓名,把各科成绩显示在一条记录里。显示结果如下:姓名            语文      数学      英语    总成绩--------------------------------------------------李四              78        85        78       241张三              80        

24、86        75       

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。