plsql綁定變量用法小結

plsql綁定變量用法小結

ID:8973074

大?。?85.00 KB

頁數(shù):19頁

時間:2018-04-13

plsql綁定變量用法小結_第1頁
plsql綁定變量用法小結_第2頁
plsql綁定變量用法小結_第3頁
plsql綁定變量用法小結_第4頁
plsql綁定變量用法小結_第5頁
資源描述:

《plsql綁定變量用法小結》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在應用文檔-天天文庫。

1、之前對ORACLE中的變量一直沒個太清楚的認識,比如說使用:、&、&&、DEIFINE、VARIABLE……等等。今天正好閑下來,上網(wǎng)搜了搜相關的文章,匯總了一下,貼在這里,方便學習。?==================================================================================??在oracle中,對于一個提交的sql語句,存在兩種可選的解析過程,一種叫做硬解析,一種叫做軟解析.一個硬解析需要經(jīng)解析,制定執(zhí)行路徑,優(yōu)化訪問計劃等許多的步驟.硬解釋不僅僅耗費大量的cpu,更重要的是會占據(jù)重要的們閂(latch)資源

2、,嚴重的影響系統(tǒng)的規(guī)模的擴大(即限制了系統(tǒng)的并發(fā)行),而且引起的問題不能通過增加內(nèi)存條和cpu的數(shù)量來解決。之所以這樣是因為門閂是為了順序訪問以及修改一些內(nèi)存區(qū)域而設置的,這些內(nèi)存區(qū)域是不能被同時修改。當一個sql語句提交后,oracle會首先檢查一下共享緩沖池(sharedpool)里有沒有與之完全相同的語句,如果有的話只須執(zhí)行軟分析即可,否則就得進行硬分析。?而唯一使得oracle能夠重復利用執(zhí)行計劃的方法就是采用綁定變量。綁定變量的實質(zhì)就是用于替代sql語句中的常量的替代變量。綁定變量能夠使得每次提交的sql語句都完全一樣。?1.sqlplus中如何使用綁定變量,可以通過var

3、iable來定義[c-sharp]viewplaincopyprint?1.SQL>?select?*?from?tt?where?id=1;??2.??3.ID?NAME??4.----------?----------------------------------------??5.1?test??6.??7.SQL>?select?*?from?tt?where?id=2;??8.??9.ID?NAME??10.----------?----------------------------------------??11.2?test??12.??13.SQL>?variab

4、le?i?number;??14.SQL>?exec?:i?:=1;??15.??16.PL/SQL?過程已成功完成。??17.??18.SQL>?select?*from?tt?where?id=:i;??19.??20.ID?NAME??21.----------?----------------------------------------??22.1?test??1.??2.SQL>?exec?:i?:=2;??3.??4.PL/SQL?過程已成功完成。??5.??6.SQL>?select?*from?tt?where?id=:i;??7.??8.ID?NAME??9.-

5、---------?----------------------------------------??10.2?test??11.??12.SQL>?print?i;??13.??14.I??15.----------??16.2??17.??18.SQL>?select?sql_text,parse_calls?from?v$sql?where?sql_text?like?'select?*?from?t??19.t?where?id=%';??20.??21.SQL_TEXT?PARSE_CALLS??22.-----------------------------------

6、-------------------------?-----------??23.select?*?from?tt?where?id=2?1??24.select?*?from?tt?where?id=1?1??25.select?*?from?tt?where?id=:i?2??26.SQL>??從上面試驗發(fā)現(xiàn)綁定變量i的使用使查詢id=1和id=2的sqlselect*fromttwhereid=:i得以重復使用,從而避免了hardparse,這里的PARSE_CALLS=2包括了一次softparse2.前兩天看到有人在pub上問在sqlplus中通過define和varia

7、ble定義的變量的區(qū)別。其實define定義的我理解不是變量而是字符常量,通過define定義之后,在通過&或者&&引用的時候不需要輸入了,僅此而已。oracle在執(zhí)行的時候自動用值進行了替換;而variable定義的是綁定變量,上面已經(jīng)提到。[c-sharp]viewplaincopyprint?1.C:>sqlplus?xys/manager??2.SQL*Plus:?Release?11.1.0.6.0?-?Production?on?星期二?4月?

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。