久久精品国产亚洲怮怮_奇米网777色在线精品_亚洲色中文字幕制服丝袜_久久精品人人做人人看

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊(cè)有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應(yīng)
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補(bǔ)償
全部產(chǎn)品
您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

Oracle中的替換變量,&變量名,&&變量名

發(fā)布時(shí)間:  2012/7/6 17:49:58

替換變量(僅用于SQL *Plus或者用于原理和SQL *Plus相同的開發(fā)工具):
臨時(shí)存儲(chǔ)值
利用它可以達(dá)到創(chuàng)建通用腳本的目的
利用它可以達(dá)到和用戶交互,故在SQL *Plus中又稱交互式命令

替換變量的格式式在變量名稱前加一個(gè)&,以便在運(yùn)行SQL命令時(shí)提示用戶輸入替換數(shù)據(jù),然后按輸入數(shù)據(jù)運(yùn)行SQL命令
語法:
(1)& :“&變量名”eg:&name;

 

生命周期:?jiǎn)未我弥,不需要聲明,如果替換字符或日期類型,最好用單引號(hào)擴(kuò)起
使用范圍:where、order by、列表達(dá)式、表名、整個(gè)SELECT 語句中

 

(2)&& :“&&變量名”eg:&&name;
生命周期:整個(gè)會(huì)話(session連接),不需要聲明

(3)define :“define 變量名=變量值”eg:DEFINE a = clark;
生命周期:整個(gè)會(huì)話,預(yù)先聲明,使用時(shí)用&引用聲明的變量
define variable=用戶創(chuàng)建的CHAR類型的值:define 變量名=值;
define 變量名:查看變量命令。 
undefine 變量名:清除變量
define:查看在當(dāng)前會(huì)話中所有的替換變量和它們的值

(4)accept

生命周期:整個(gè)會(huì)話
預(yù)先聲明,可以客戶化提示信息,使用時(shí)用&引用聲明的變量。
定義:
accept 變量名name number/char/date prompt '提示信息內(nèi)容'即:ACC[EPT] variable [NUM[BER] | CHAR | DATE] [FOR[MAT] format] [DEF[AULT] default] [PROMPT text | NOPR[OMPT]] [HIDE]
解釋:
PROMPT命令:用于輸出提示用戶的信息,以便使用戶了解腳本文件的功能和運(yùn)行情況
PAUSE命令:用于暫停腳本文件的運(yùn)行
HIDE選項(xiàng):用于隱藏用戶的輸入,使別人不可見,安全
這條命令的意思是:當(dāng)plsql程序段執(zhí)行到變量name的時(shí)候,此時(shí)需要用戶的交互才能繼續(xù)執(zhí)行下去,plsql程序段會(huì)顯示“提示信息內(nèi)容”讓用戶輸入相關(guān)信息(如果指定hide選項(xiàng),那么在接下去用戶輸入的東西將被用星號(hào)顯示出來增加安全,有點(diǎn)像輸入密碼),用戶輸入的內(nèi)容被接收到并且把它付給name,關(guān)于在“提示信息內(nèi)容”下用戶輸入的內(nèi)容的類型,plsql程序段開發(fā)人員來通過number/char/date指定,變量name得到正確的值以后,繼續(xù)執(zhí)行相關(guān)下面的程序!
例:accept a char prompt '請(qǐng)輸入員工的雇傭時(shí)間(yyyy-mm-dd):' hide 
例:accept a char prompt 'input a:' hide

verify:是否給出原值及新值提示。

set verify on/off;

具體請(qǐng)參看下面的例子:

plsql程序1:

  1. declare  
  2.    v_sal number(6,2);  
  3.    v_ename emp.ename%type:='&ename';  
  4. begin  
  5.    select sal into v_sal from emp  
  6. where lower(ename)=lower(v_ename);  
  7. if v_sal<2000 then  
  8.    update emp set sal=v_sal + 200  
  9.       where lower(ename)=lower(v_ename);  
  10. end if;  
  11. end;  
  12.   
  13. /  

plsql程序2:

  1. declare  
  2.    v_sal number(6,2);  
  3.    v_ename emp.ename%type:='&&ename';  
  4. begin  
  5.    select sal into v_sal from emp  
  6. where lower(ename)=lower(v_ename);  
  7. if v_sal<2000 then  
  8.    update emp set sal=v_sal + 200  
  9.       where lower(ename)=lower(v_ename);  
  10. end if;  
  11. end;  
  12.   
  13. /  

secureCRT的一個(gè)會(huì)話中先執(zhí)行程序2,再次執(zhí)行程序1,會(huì)發(fā)現(xiàn)直接PL/SQL procedure successfully completed.
而不讓我輸入ename,將set verify off也不行
另一個(gè)打開會(huì)話 將set verify off后,每次執(zhí)行程序1都會(huì)讓你輸入ename。
這就是在前面一個(gè)會(huì)話執(zhí)行程序2的時(shí)候已經(jīng)將ename,保存為了會(huì)話的變量,而不是plsql程序的變量。


本文出自:億恩科技【prubsntakaful.com】

服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營(yíng)性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營(yíng)性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營(yíng)性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:0371-60135900
  • 專注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號(hào)
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號(hào)總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號(hào)
      0
     
     
     
     

    0371-60135900
    7*24小時(shí)客服服務(wù)熱線