Oracle中的替換變數, 變數名, 變數名

2021-08-26 21:20:23 字數 2318 閱讀 7606

替換變數(僅用於sql *plus或者用於原理和sql *plus相同的開發工具):

臨時儲存值

利用它可以達到建立通用指令碼的目的

利用它可以達到和使用者互動,故在sql *plus中又稱互動式命令

替換變數的格式式在變數名稱前加乙個&,以便在執行sql命令時提示使用者輸入替換資料,然後按輸入資料執行sql命令

語法:(1)& :「&變數名」eg:&name;

生命週期:單次引用中,不需要宣告,如果替換字元或日期型別,最好用單引號擴起

使用範圍:where、order by、列表示式、表名、整個select 語句中

(2)&& :「&&變數名」eg:&&name;

生命週期:整個會話(session連線),不需要宣告

(3)define :「define 變數名=變數值」eg:define a = clark;

生命週期:整個會話,預先宣告,使用時用&引用宣告的變數

define variable=使用者建立的char型別的值:define 變數名=值;

define 變數名:檢視變數命令。

undefine 變數名:清除變數

define:檢視在當前會話中所有的替換變數和它們的值

(4)accept

生命週期:整個會話

預先宣告,可以客戶化提示資訊,使用時用&引用宣告的變數。

定義:accept 變數名name number/char/date prompt '提示資訊內容'即:acc[ept] variable [num[ber] | char | date] [for[mat] format] [def[ault] default] [prompt text | nopr[ompt]] [hide]

解釋:prompt命令:用於輸出提示使用者的資訊,以便使使用者了解指令碼檔案的功能和運**況

pause命令:用於暫停指令碼檔案的執行

hide選項:用於隱藏使用者的輸入,使別人不可見,安全

這條命令的意思是:當plsql程式段執行到變數name的時候,此時需要使用者的互動才能繼續執行下去,plsql程式段會顯示「提示資訊內容」讓使用者輸入相關資訊(如果指定hide選項,那麼在接下去使用者輸入的東西將被用星號顯示出來增加安全,有點像輸入密碼),使用者輸入的內容被接收到並且把它付給name,關於在「提示資訊內容」下使用者輸入的內容的型別,plsql程式段開發人員來通過number/char/date指定,變數name得到正確的值以後,繼續執行相關下面的程式!

例:accept a char prompt '請輸入員工的僱傭時間(yyyy-mm-dd):' hide

例:accept a char prompt 'input a:' hide

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

set verify on/off;

具體請參看下面的例子:

plsql程式1:

declare

v_sal number(6,2);

v_ename emp.ename%type:='&ename';

begin

select sal into v_sal from emp

where lower(ename)=lower(v_ename);

if v_sal<2000 then

update emp set sal=v_sal + 200

where lower(ename)=lower(v_ename);

end if;

end;

/

plsql程式2:

declare

v_sal number(6,2);

v_ename emp.ename%type:='&&ename';

begin

select sal into v_sal from emp

where lower(ename)=lower(v_ename);

if v_sal<2000 then

update emp set sal=v_sal + 200

where lower(ename)=lower(v_ename);

end if;

end;

/

securecrt的乙個會話中先執行程式2,再次執行程式1,會發現直接pl/sql procedure successfully completed.

而不讓我輸入ename,將set verify off也不行

另乙個開啟會話 將set verify off後,每次執行程式1都會讓你輸入ename。

這就是在前面乙個會話執行程式2的時候已經將ename,儲存為了會話的變數,而不是plsql程式的變數。

shell 變數名中包含變數

eval接受乙個字串作為它的引數,並對它進行評估 轉義。n 1 eval echo 執行傳遞給eval的引數。擴充套件後,引數是echo和 所以eval echo 執行命令echo string id id 1 stream 1 111111 cmd 222222 echo cmd 有些bash不支...

變數名命名

有些東西不明確寫出來就難以確定下來,個人寫 的命名風格一直沒有穩定下來,今天寫個筆記明確幾類主要的命名,希望可以逐步養成自己的程式設計風格。1.類名 型別名 t 每個單詞首字母大寫 例 t typename 2.列舉型別 反應型別的複數形式 例 enum colors 3.函式名 每個單詞首字母大寫...

變數名提公升

預解析的過程 的執行過程 程式在執行過程,會先將 讀取到記憶體中檢查,會將所有的宣告在此時進行標記。所謂的標記就是讓js直譯器直到有這個名字,後面在使用名字的時候,不會出現未定義的錯誤,這個標記就是提公升 宣告 名字的宣告,識別符號的宣告 變數名的提公升 函式的宣告 函式宣告與函式表示式有區別,函式...