oracle-存儲過程練習(xí)題_第1頁
oracle-存儲過程練習(xí)題_第2頁
oracle-存儲過程練習(xí)題_第3頁
oracle-存儲過程練習(xí)題_第4頁
oracle-存儲過程練習(xí)題_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上1 創(chuàng)建用戶kaifa(密碼亦為kaifa), 并分配connect,create table,resource權(quán)限。CREATE user KAIFA IDENTIFIED BY KAIFA DEFAULT TABLESPACE HOSDATATEMPOARY TABLESPACE TEMPDATA;GRANT CONNECT , CREATE TABLE , RESOURCE TO KAIFA2 在做報(bào)表統(tǒng)計(jì)時(shí),需要根據(jù)報(bào)表日期和幣種從概要表中查詢本期余額。概要表(CCB_GYB)信息如下:ACCOUNTING_DATEDATE報(bào)表日期(唯一索引)RMB_YTD_

2、BALANCENUMBER人民幣余額CNY_YTD_BALANCENUMBER本位幣余額USD_YTD_BALANCENUMBER外幣折美元余額其中幣種代碼如下: -RMB 人民幣 -CNY 本位幣 -USD 外幣折美元如果幣種為RMB,則取出人民幣余額作為本期余額;為CNY,則取本位幣余額;為USD則取外幣折美元余額。請編寫一個(gè)函數(shù)GetCurrBal( qrp_rq IN VARCHAR2, -報(bào)表日期 qrp_code IN VARCHAR2 -幣種 )CREATE OR REPLACE FUNCTION GetCurrBal( Vqrp_rq Date , -報(bào)表日期 Vqrp_cod

3、e VARCHAR2 -幣種 )RETURN NUMBERIS VAMOUNT NUMBER ;VDATE Date;BEGINSELECT ACCOUNTING_DATE INTO VDATE FROM CCB_GYBWhere ACCOUNTING_DATE = Vqrp_rq;IF Vqrp_code = 'RMB' THEN SELECT RMB_YTD_BALANCE INTO VAMOUNT FROM CCB_GYB WHERE Vqrp_code= 'RMB'AND ACCOUNTING_DATE= VDATE; ELSE IF Vqrp_code

4、 = 'CNY' THEN SELECT CNY_YTD_BALANCE INTO VAMOUNT FROM CCB_GYB WHERE Vqrp_code= 'CNY'ELSE SELECT USD_YTD_BALANCE INTO VAMOUNT FROM CCB_GYB WHERE Vqrp_code= 'USD'END IF ;END IF ;COMMIT;RETURN VAMOUNT;END;-對多行處理,用游標(biāo)-多單行處理,用SELECT 實(shí)現(xiàn)此功能,并能在sqlplus里調(diào)用。其中建表語句如下:create table CCB_GY

5、B( ACCOUNTING_DATE DATE, RMB_YTD_BALANCE NUMBER, CNY_YTD_BALANCE NUMBER, USD_YTD_BALANCE NUMBER);創(chuàng)建索引:create unique index CCB_GYB_IDX on CCB_GYB (ACCOUNTING_DATE);3 假設(shè)有張學(xué)生成績表(CJ)如下 姓名 學(xué)科 成績 張三 語文 80 張三 數(shù)學(xué) 86 張三 英語 75 李四 語文 78 李四 數(shù)學(xué) 85 李四 英語 78 現(xiàn)有需求如下:(1)要求統(tǒng)計(jì)分?jǐn)?shù)段的人數(shù)。顯示結(jié)果為:成績      人

6、數(shù)0<成績<60      0 60<成績<80     0 80<成績<100    5 CREATE OR REPLACE Procedure SCOUNT Is VCOUNT1 Varchar2(10); VCOUNT2 Varchar2(10); VCOUNT3 Varchar2(10); Begin Select Count(*) Into VCOUNT1 From CJ Where SCORE Between 0 And 60; Select Co

7、unt(*) Into VCOUNT2 From CJ Where SCORE Between 61 And 80; Select Count(*) Into VCOUNT3 From CJ Where SCORE Between 81 And 100;dbms_output.put_line ('分?jǐn)?shù)'| | 人數(shù)); dbms_output.put_line ('0<成績<60'| |VCOUNT1); dbms_output.put_line ('60<成績<80'| | VCOUNT2); dbms_output.

8、put_line ('81<成績<100'| | VCOUNT3); End;(2)要求根據(jù)姓名,把各科成績顯示在一條記錄里。顯示結(jié)果如下:姓名             語文       數(shù)學(xué)       英語     總成績- - - - -李四   

9、0;           78         85         78        241張三              

10、80         86         75        241總分              158        171   &#

11、160;    153       482 (Select D.SSNAME,D.SSOCRE 數(shù)學(xué),D.YSCORE 語文,D.ESCORE 英語 ,Sum(D.SSOCRE+D.YSCORE+D.ESCORE) 總成績 From (Select A.SNAME SSNAME ,A.SCORE SSOCRE,B.SCORE YSCORE,C.SCORE ESCORE From CJ A ,CJ B ,CJ C Where A.SNAME=B.SNAME And C.SNAME=A.SNAME

12、And A.XK='語文' And B.XK='數(shù)學(xué)' And C.XK='英語')DGroup By D.SSNAME,D.SSOCRE,D.YSCORE,D.ESCORE)Union All(Select '總分' 姓名,Sum(FF.BB) 數(shù)學(xué) ,Sum(FF.CC) 語文,Sum(FF.DD) 英語,Sum(FF.EE) 總成績 From (Select D.SSNAME AA,D.SSOCRE BB,D.YSCORE CC,D.ESCORE DD,Sum(D.SSOCRE+D.YSCORE+D.ESCORE) EE F

13、rom (Select A.SNAME SSNAME ,A.SCORE SSOCRE,B.SCORE YSCORE,C.SCORE ESCORE From CJ A ,CJ B ,CJ C Where A.SNAME=B.SNAME And C.SNAME=A.SNAME And A.XK='語文' And B.XK='數(shù)學(xué)' And C.XK='英語') DGroup By D.SSNAME,D.SSOCRE,D.YSCORE,D.ESCORE ) FF)行轉(zhuǎn)列Select SNAME ,SUM(DECODE(XK,'語文',S

14、CORE,0) 語文,Sum(DECODE(XK,'數(shù)學(xué)',SCORE,0) 數(shù)學(xué) ,Sum(DECODE(XK,'英語',SCORE,0) 英語 , SUM(SCORE) AA From CJGroup By SNAMEUnion AllSelect '總分' ,Sum(DECODE(XK,'語文',SCORE,0) 語文,Sum(DECODE(XK,'數(shù)學(xué)',SCORE,0) 數(shù)學(xué) ,Sum(DECODE(XK,'英語',SCORE,0) 英語 , SUM(SCORE) From CJ 使用SQ

15、L語句或存儲過程(顯示結(jié)果時(shí)可用dbms_output打印出來)實(shí)現(xiàn)這兩個(gè)功能。DBMS_OUTPUT.PUT_LINE(姓名 語文 數(shù)學(xué) 英語 總成績)4 某一客戶表包含如下信息:INDIVIDUALID客戶IDVARCHAR2(20)(唯一鍵)BIRTHDATE出生日期DateGENDER性別VARCHAR2(10)SALARY月收入NUMBER(10,2)CERT-TYPE證件類型VARCHAR2(10)CERT-NO證件號碼VARCHAR2(20)CREATED-TS進(jìn)入系統(tǒng)的時(shí)間TIMESTAMP現(xiàn)要把該表數(shù)據(jù)導(dǎo)出成文件,導(dǎo)出的內(nèi)容格式如下:屬性列列長度備注INDIVIDUALID2

16、0BIRTHDATE8格式為:yyyymmddGENDER10SALARY13CERT-TYPE10CERT-NO20CREATED-TS17格式為:yyyymmddhh24missff3要求每個(gè)字段列的內(nèi)容長度是固定的,不足部分由空格補(bǔ)齊,字符串左對齊(右補(bǔ)空格),數(shù)字右對齊。如果列的內(nèi)容為null,需先進(jìn)行處理,字符串默認(rèn)為空格,數(shù)字默認(rèn)為0,日期默認(rèn)為,時(shí)間戳默認(rèn)為。請編寫程序?qū)崿F(xiàn)該導(dǎo)出功能。 創(chuàng)建表腳本:create table tb1010(INDIVIDUALID VARCHAR2(20),BIRTHDATE date,GENDER VARCHAR2(10),SALARY NUMB

17、ER(10,2),CERT_TYPE VARCHAR2(10),CERT_NO VARCHAR2(20),CREATED_TS TIMESTAMP);5 某語音電話本表信息如下:Call_book_infoMOBILE_ID移動(dòng)號碼VARCHAR2(12) CALLIN_TIME呼入時(shí)間DateCALLOUT_TIME呼出時(shí)間DateSTATUS狀態(tài)CHAR(1)在某次大批量操作后,數(shù)據(jù)記錄達(dá)到100萬,MOBILE_ID估計(jì)有2萬個(gè)重復(fù),現(xiàn)要求刪除重復(fù)的號碼(只保留一條),因?yàn)樵摫硎菢I(yè)務(wù)表,刪除時(shí)不能影響業(yè)務(wù)的正常使用。編寫存儲過程實(shí)現(xiàn)刪除重復(fù)號碼的功能。要求如下:(1) 為保證刪除的數(shù)據(jù)以

18、后可查,在刪除時(shí)要先做備份,備份不成功則不能進(jìn)行刪除。(2) 要有日志記錄,比如刪除所花時(shí)間,刪除成功了多少條,失敗多少條等操作信息。(3) 如果出現(xiàn)性能問題,要跟蹤原因。生成trace文件進(jìn)行分析,改進(jìn)程序。6閱讀下列說明,回答問題1至問題5。【說明】某工廠的信息管理數(shù)據(jù)庫的部分關(guān)系模式如下所示:職工(職工號,姓名,年齡,月工資,部門號,電話,辦公室)部門(部門號,部門名,負(fù)責(zé)人代碼,任職時(shí)間)關(guān)系模式的主要屬性、含義及約束如表2-1所示,“職工”和“部門”的關(guān)系示例分別如表2-2和表2-3所示。表2-1主要屬性、含義及約束 表2-2 “職工”關(guān)系表2-3“部門”關(guān)系【問題1】根據(jù)上述說明,

19、由SQL定義的“職工”和“部門”的關(guān)系模式,以及統(tǒng)計(jì)各部門的人數(shù)C、工資總數(shù)Totals、平均工資Averages的D_S視圖如下所示,請?jiān)诳杖碧幪钊胝_的內(nèi)容。(6分)Create Table 部門(部門號 CHAR(1) (a) ,部門名 CHAR(16),負(fù)責(zé)人代碼 CHAR(4),任職時(shí)間 DATE,(b) (職工號));Create Table 職工(職工號 CHAR(4),姓名 CHAR(8),年齡 NUMDER(3),月工資 NUMDER(4),部門號 CHAR(1),電話 CHAR(8),辦公室 CHAR(8),(a) (職工號),(c) (部門號),CHECK( (d) );Create View D_S(D,C,Totals,Averages) As(Select 部門號, (e) from 職工(f) ;【問題】 對于表2-2、表2-3所示的“職工”和“部門”關(guān)系,請指出下列各行是否可以插入,為什么?(3分) (1) 1001 王新軍 28 10

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論