
腳本可以帶參數,在腳本中通過&n來引用參數,n為1表示為第一個參數,2表示第二個參數,依次類推。如:
/****test.SQL****/set ver off; connect omc/&1
insert into test values(&2);
commit;
執行該腳本的方法是:SQL>@e:\test.SQL omc self 45
如果參數是字符串,且字符串有空格,應該用雙引號或單引號擴起,如果字符串中有雙引號,則只能用單引號擴起,如果字符串中要輸入單引號,則只能用雙引號擴起,且輸入兩個單引號才代表一個單引號。如:
/********test.********/
set ver off;
connect omc/&1@&2
create table test(s varchar2(20)); insert into test values('&3'); commit; 執行:
sql>@e:\test.
omc self hello
sql>@e:\test.
omc self “hello world”
sql>@e:\test.
omc self hello world’
sql>@e:\test.
omc self “hello ‘’zte’’world”
sql>@e:\test.
omc self ‘hello “zte” world’ 正常情況下,slq*plus執行時,碰到&符號,就會作為參數來處理,如果&符號后跟的是數字,就會從命令行中取相應的值替換&n,如果找不到,如n為3,但執行時只帶了2個參數,sql*plus就會在屏幕上提示輸入參數。如果&后跟的不是數字,而是其它字符,則sql*plus會把&及其后的字符串(截止到空格為止)當作一個參數提示輸入。
如: select ‘hello&good china’ from dual; 那么如何將&作為普通字符處理呢?除了前面介紹的定義escape環境參數外,另一方法是,&符號后緊跟單引號(之間可以跟空格)。如: select ‘hello&’||’good china’ from dual; select ‘hello& ’||’good china’ from dual;
所以,一般情況下在sql*plus下,執行語句時或腳本時,對&字符需要特殊處理一下,因為它是sql*plus中的特殊字符。
手機瀏覽
全國
19974831731





