![Oracle數(shù)據(jù)庫-SQL+PLSQL-Less14-聲名變量_第1頁](http://file4.renrendoc.com/view11/M00/05/02/wKhkGWX05oiAEbUTAABO_HdxSPk349.jpg)
![Oracle數(shù)據(jù)庫-SQL+PLSQL-Less14-聲名變量_第2頁](http://file4.renrendoc.com/view11/M00/05/02/wKhkGWX05oiAEbUTAABO_HdxSPk3492.jpg)
![Oracle數(shù)據(jù)庫-SQL+PLSQL-Less14-聲名變量_第3頁](http://file4.renrendoc.com/view11/M00/05/02/wKhkGWX05oiAEbUTAABO_HdxSPk3493.jpg)
![Oracle數(shù)據(jù)庫-SQL+PLSQL-Less14-聲名變量_第4頁](http://file4.renrendoc.com/view11/M00/05/02/wKhkGWX05oiAEbUTAABO_HdxSPk3494.jpg)
![Oracle數(shù)據(jù)庫-SQL+PLSQL-Less14-聲名變量_第5頁](http://file4.renrendoc.com/view11/M00/05/02/wKhkGWX05oiAEbUTAABO_HdxSPk3495.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
聲名變量工程目標(biāo)1.聲明一個暫存員工號的變量v_empno,編寫一個匿名塊,查詢smith員工的工號,并將其展示在控制臺2.請指出以下的表達(dá)式聲明中,錯誤的選項是那一項?并說明理由:a. DECLAREv_idNUMBER(4);b. DECLAREv_x,v_y,v_z VARCHAR2(10);c. DECLAREv_birthdateDATENOTNULL; d. DECLAREv_in_stockBOOLEAN:=1;3.將selectename,sal,empnofromempwhereempno=7788;這個select語句的查詢條件綁定變量,以提高性能所需知識點(diǎn)PL/SQL的優(yōu)點(diǎn)變量的類型PL/SQL變量的聲明標(biāo)量的類型和聲明綁定變量關(guān)于PL/SQLPL/SQL是SQL語句的擴(kuò)展,它具有編程語言的設(shè)計特征.進(jìn)行數(shù)據(jù)操縱和查詢的SQL語句作為過程化單元,包含在代碼當(dāng)中.PL/SQL的優(yōu)點(diǎn)集成性應(yīng)用程序Oracle效勞器共享庫PL/SQL的優(yōu)點(diǎn)提高性能應(yīng)用其它DBMS應(yīng)用Oracle
PL/SQLSQLSQLSQLSQLSQLIF...THEN SQLELSE SQLENDIF;SQL集成性:存儲過程能將一些列增刪改查的業(yè)務(wù)放在一起提高性能:存儲過程因為oracle已經(jīng)正常編譯之后,應(yīng)用程序調(diào)用存儲過程的時候,不用進(jìn)行語法,語義的檢查,所以會節(jié)省時間,提高性能PL/SQL的優(yōu)點(diǎn)PL/SQL語句塊結(jié)構(gòu)DECLARE–可選項變量、游標(biāo)、用戶定義異常BEGIN–必須的SQL語句PL/SQL語句EXCEPTION–可選當(dāng)錯誤發(fā)生時的處理動作END;–必須有的DECLAREBEGINEXCEPTIONEND;PL/SQL語句塊結(jié)構(gòu)DECLAREv_variableVARCHAR2(5);BEGINSELECT column_nameINTO v_variableFROM table_name;EXCEPTIONWHENexception_nameTHEN...END;DECLAREBEGINEXCEPTIONEND;塊類型匿名 過程 函數(shù)[DECLARE]BEGIN--statements[EXCEPTION]END;PROCEDUREnameISBEGIN--statements[EXCEPTION]END;FUNCTIONnameRETURNdatatypeISBEGIN--statementsRETURNvalue;[EXCEPTION]END;匿名存儲過程函數(shù)變量的使用變量的作用:存放暫時的數(shù)據(jù)操縱存儲的值可重用簡化維護(hù)在PL/SQL中操縱變量在聲明局部聲明和創(chuàng)立變量.在可執(zhí)行局部為變量賦值.通過參數(shù)為PL/SQL塊傳送值.通過輸出變量查看結(jié)果.變量類型PL/SQL變量:標(biāo)量復(fù)合變量參考變量LOB(大對象)非PL/SQL變量:Bind和host變量聲明PL/SQL變量identifier[CONSTANT]datatype[NOTNULL] [:=|DEFAULTexpr];Declare v_hiredate DATE; v_deptno NUMBER(2)NOTNULL:=10; v_location VARCHAR2(13):='Atlanta';c_comm CONSTANTNUMBER:=1400;
語法:實例:聲明PL/SQL變量指導(dǎo):要遵從命名習(xí)慣.以NOTNULL和CONSTANT約束來初始化變量.使用賦值操作符(:=)或者DEFAULT保存字來初始化變量.每行只聲明一個變量是一個好習(xí)慣.為一個變量賦值identifier:=expr;v_ename:='Maduro';v_hiredate:='31-DEC-98';語法例如:為一個新雇員設(shè)定一個雇傭日期把雇員名字設(shè)為Maduro變量初始化和關(guān)鍵字使用方法:賦值操作符(:=)DEFAULT關(guān)鍵字NOTNULL約束根本標(biāo)量類型VARCHAR2(maximum_length)NUMBER[(precision,scale)]DATECHAR[(maximum_length)]LONGLONGRAWBOOLEANBINARY_INTEGERPLS_INTEGER標(biāo)量變量聲明例子:v_job VARCHAR2(9);v_count BINARY_INTEGER:=0;v_total_sal NUMBER(9,2):=0;v_orderdate DATE:=SYSDATE+7;c_tax_rate CONSTANTNUMBER(3,2):=8.25;v_valid BOOLEANNOTNULL:=TRUE;%TYPE屬性可以參照以下類型來聲明一個變量:一個數(shù)據(jù)庫表的列定義其它以前所定義的變量聲明以下類型,可以使用%TYPE前綴:一個數(shù)據(jù)庫表的列定義其它以前所定義的變量使用%TYPE屬性來聲明變量例子:...v_ename emp.ename%TYPE;v_balance NUMBER(7,2); v_min_balance v_balance%TYPE:=10;... 聲明布爾變量只有TRUE,FALSE,和NULL可以賦給一個布爾變量.布爾變量可以用AND,OR,和NOT邏輯操作符來連接.變量的值只能是TRUE,FALSE,或NULL其中之一.數(shù)字、字符、表達(dá)式可以用來返回一個布爾型值.LOB數(shù)據(jù)類型書籍(CLOB)圖片(BLOB)電影(BFILE)NCLOB〔綁定〕Bind變量ServerO/S綁定變量Bind變量在主機(jī)環(huán)境中定義,向PL/SQL塊傳遞運(yùn)行時數(shù)值的變量。例如:可以在SQL*plus中定義Bind變量而在PL/SQL中使用變量。例如:在SQL*plus中可以定義如下Bind變量:SQL>variableempno_idvarchar2(10);SQL>exec:empno_id:='7369';SQL>select*fromempwhereempno=:empno_id;引用非PL/SQL變量將年薪保存到一個SQL*Plus宿主變量中.以宿主變量的形式來引用PL/SQL變量.在變量名前面要以冒號(:)作為前綴.:g_monthly_sal:=v_sal/12;DBMS_OUTPUT.PUT_LINE這是一個Oracle所提供的一個打包過程可以代替PL/SQL塊來完成數(shù)據(jù)的顯示在SQL*Plus中必須執(zhí)行SET
SERVEROUTPUTON語句以激活該功能例如:DECLAREv_salNUMBER(9,2):=&p_annual_sal;BEGINv_sal:=v_sal/12;DBMS_OUTPUT.PUT_LINE('Themonthlysalaryis'||TO_CHAR(v_sal));END;/綁定變量擴(kuò)展內(nèi)容bindvar是指在sql語句的條件中使用變量而不是常量。比方sharedpool里有兩條sql語句,select*fromempwhereempno=7788;select*fromempwhereempno=7789;對oracle數(shù)據(jù)庫來說,這是兩條完全不同的SQL,對這兩條語句都需要進(jìn)行hardparse。因為oracle會根據(jù)sql語句的文本去計算每個字符在內(nèi)存里的hash值,因此雖然上述兩條SQL只有一個字符不一樣,oracle根據(jù)hash算法在內(nèi)存中得到的hash地址就不一樣,所以oracle就會認(rèn)為這是兩條完全不同的語句。而如果將上述SQL改寫成select*fromempwhereempno=:var1;,然后通過對變量var1的賦值去查詢,那么oracle對這條語句第一次會進(jìn)行hardparse,以后就只進(jìn)行softparse。假設(shè)某條語句被重復(fù)執(zhí)行了幾十萬次,那么使用bindvar帶來的好處是巨大的,優(yōu)點(diǎn)是減少硬解析,降低CPU的爭用,節(jié)省shared_pool。1.聲明一個暫存員工號的變量v_empno,編寫一個匿名塊,查詢smith員工的工號,并將其展示在控制臺SQL>setserveroutputon;SQL>DECLARE2empnoNUMBER(4);3BEGIN4SELECTempnoINTOempnoFROMempWHEREename='SMITH';5dbms_output.put_line(empno);6END;7/7369PL/SQLproceduresuccessfullycompleted.練習(xí)案例2.請指出以下的表達(dá)式聲明中,錯誤的選項是那一項?并說明理由:a. DECLAREv_idNUMBER(4);b. DECLAREv_x,v_y,v_z VARCHAR2(10);c. DECLAREv_birthdateDATENOTNULL; d. DECLAREv_in_stockBOOLEAN:=1;選D因為不可以將數(shù)字類型的值,賦
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年沈陽北軟信息職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 2025年無錫南洋職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 2025年曲阜遠(yuǎn)東職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 專題05 名句名篇默寫(第1期)
- 專題05 青春時光(第1期)
- 全新承包公寓合同下載
- 幼兒園指紋教育活動策劃方案五篇
- 總經(jīng)理聘用合同的范文
- 金融合同保險業(yè)務(wù)居間合約
- 生活垃圾清運(yùn)服務(wù)合同年
- 【人教版化學(xué)】必修1 知識點(diǎn)默寫小紙條(答案背誦版)
- 江蘇省無錫市2023-2024學(xué)年八年級上學(xué)期期末數(shù)學(xué)試題(原卷版)
- 全國第三屆職業(yè)技能大賽(無人機(jī)駕駛(植保)項目)選拔賽理論考試題庫(含答案)
- 對口升學(xué)語文模擬試卷(10)-江西?。ń馕霭妫?/a>
- 《奧特萊斯業(yè)態(tài)淺析》課件
- 2022年湖南省公務(wù)員錄用考試《申論》真題(縣鄉(xiāng)卷)及答案解析
- 小學(xué)語文中段整本書閱讀的指導(dǎo)策略研究 中期報告
- 浙教版2023-2024學(xué)年數(shù)學(xué)八年級上冊期末復(fù)習(xí)卷(含答案)
- 運(yùn)動訓(xùn)練與康復(fù)治療培訓(xùn)資料
- 小班繪本教學(xué)《藏在哪里了》課件
- 老師呀請你別生氣教學(xué)反思
評論
0/150
提交評論