在oracle sqlplus中通過new_value及define傳遞或定義變數variable

wisdomone1發表於2015-09-24

背景

  今天在MOS上發現一則文章:Information Gathering Script For ORA-4031 Analysis On Large Pool (文件 ID 1909805.1),裡面SQL指令碼編寫用到了..方法,


在我之前的文章中有過測試,
http://blog.itpub.net/9240380/
  不過MOS裡面的寫法和我的不同,在這兒我用MOS的方法測試下,多掌握一種方法,提升工作能力,希望對大家有益。


結論

1,select可以通過new_value把查詢列的變數傳遞到sql指令碼中的其它變數中
2,define可以定義一個變數,也可以引用一個變數
3,引用一變數必須要在變數前加&
4,字元常量必須要用''括起,而字元變數須用&變數引用


測試

1,編寫SQL指令碼
[ora10g@seconary large_pool_4031]$ more learn_mos.sql 
rem set markup html on preformat on
spool zxy.txt
column sql_column noprint new_value sql_column
select to_char(sysdate,'yyyymmddhh24miss') sql_column from dual;
define var1=&sql_column
select 'abc'||&var1 from dual;
spool off
exit


2,在sqlplus執行sql指令碼,並檢視結果
[ora10g@seconary large_pool_4031]$ more zxy.txt 


old   1: select 'abc'||&var1 from dual
new   1: select 'abc'||20150924050444 from dual


'ABC'||2015092405                                                               
-----------------                                                               
abc20150924050444  


個人簡介


8年oracle從業經驗,具備豐富的oracle技能,目前在國內北京某專業oracle服務公司從事高階技術顧問。
服務過的客戶:
中國電信
中國移動
中國聯通
中國電通
國家電網
四川達州商業銀行
湖南老百姓大藥房
山西省公安廳
中國郵政
北京302醫院     
河北廊坊新奧集團公司

 專案經驗:
中國電信3G專案AAA系統資料庫部署及優化
      中國聯通4G資料庫效能分析與優化
中國聯通CRM資料庫效能優化
中國移動10086電商平臺資料庫部署及優化
湖南老百姓大藥房ERR資料庫sql優化專案
四川達州商業銀行TCBS核心業務系統資料庫模型設計和RAC部署及優化
四川達州商業銀行TCBS核心業務系統後端批處理儲存過程功能模組編寫及優化
北京高鐵訊號監控系統RAC資料庫部署及優化
河南宇通客車資料庫效能優化
中國電信電商平臺核心採購模組表模型設計及優化
中國郵政儲蓄系統資料庫效能優化及sql優化
北京302醫院資料庫遷移實施
河北廊坊新奧data guard部署及優化
山西公安廳身份證審計資料庫系統故障評估
國家電網上海災備專案4 node rac+adg 
       貴州移動crm及客服資料庫效能優化專案
       貴州移動crm及客服務資料庫sql稽核專案
       深圳穆迪軟體有限公司資料庫效能優化專案

聯絡方式:
手機:18201115468
qq   :   305076427
qq微博: wisdomone1
新浪微博:wisdomone9
qq群:275813900    
itpub部落格名稱:wisdomone1    http://blog.itpub.net/9240380/

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-1808363/,如需轉載,請註明出處,否則將追究法律責任。

相關文章