批量生成sql語句,難得


在工作我們常常要批量生成sql文件,因為業務部門經常給我們的是excel文件,根據我的經驗,推薦兩種批量生成sql文件方式

 1.excel批量生成sql ,sql語句如下

  INSERT INTO TableName(ID,USERNAME,MANAGERID2) VALUES('"&列名&"','"&列名&"','"&列名&"');

  但是這個里面會有問題如果是有時間類型呢 ,就會出現數字,那么怎么解決呢 ,1.首先把時間列設置文本格式,2.把生成的sql放到桌面新建的文本里面

  具體詳細可見下面圖片

  含時間類型sql如下,記住sql

  ="INSERT INTO TableName(m_no,m_date1,m_date_open,m_date_close) VALUES('"& A2 &"',to_date('"& B2 &"','yyyy-mm-dd'),to_date('"& C2 &"','yyyy-mm-dd'),to_date('"& D2 &"','yyyy-mm-dd'));"

  同理,update語句如下

  ="update m_store set 字段1='" & B2 & "',字段2='" & B2*1 & "' where 字段三='" & B3 & "';"

 2.第二種批量生成sql的方法

  sql生成sql語句,為什么呢,因為存在跨庫的原因,如果沒有link就需要,執行sql文件,主要適應的條件是跨庫

  sql語句的寫法如下:

SELECT 'update ds36.occ_file set occud10 = 2 , occud12 = to_number('||''''||a2||''''||') where occ01 ='||''''||a1||''''||''||';',a3 FROM (
SELECT nvl(EXTRACTVALUE(xmltype(fi.fieldvalues),'/CreditProcessForm/Textbox54'),EXTRACTVALUE(xmltype(fi.fieldvalues),'/CreditProcessForm/Textbox24')) a1 ,EXTRACTVALUE(xmltype(fi.fieldvalues),'/CreditProcessForm/Textbox75') a2,EXTRACTVALUE(xmltype(fi.fieldvalues),'/CreditProcessForm/SerialNumber') a3
 from ProcessInstance pi inner join ProcessContext pc on pc.containeroid=pi.oid
inner join LocalRelevantData lrd on lrd.containeroid=pc.oid 
inner join FormInstance fi on fi.oid=lrd.valueoid where pi.currentstate = 3 AND pi.serialnumber LIKE  '%PKG15783854472041_clone%'
--標識符    PKG15783854472041_clone
)

  批量生成sql語句后,只需要導出excel,sql語句,放到文本里面就會非常的方便

 3.最終我們都要執行sql文件,怎么創建sql文件呢,很簡單,新建文本文件,把sql語句放進去,把后綴txt,改成.sql文件

  在plsql里面new -->Command Window 

    記得把sql文件路徑拷下來,到時候執行時候@D:\1.sql,回車即可執行

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM