oracle到底能不能insert into 多個values!?__oracle

來源:互聯網
上載者:User

         稍微熟悉oracle的都知道,如果我們想一條SQL語句向表中插入多個值的話,如果INSERT INTO 某表 VALUES(各個值),VALUES(各個值),.....;這樣會報錯的,因為oracle是不支援這種寫法的,如果多個INSERT INTO VALUEES(各個值);這樣以“;”隔開一同執行也是不行的,oracle也是不支援的。

       不過MySQL這兩種方式都是支援的。

       SQL Server也是不支援這兩種寫法的。

       然而,有時我們在開發過程中,如果是用的oracle資料庫的話,有時很需要這種INSERT INTO  某表 一次效能插入多個值這樣的功能,但oracle又不支援以上兩種方式那麼我們怎麼辦。是的可能你很機靈的想到了幾種方法,如預存程序,或著INSERT INTO 某表 SELECT * FROM 某個表等,不過聲明一下,我們在此不探討這些方法,而且都有一定的局限性,有時我就要插入指定的幾個值,而且一條SQL陳述式完成,預存程序的話,萬不得已,建議大家不要使用,當然這個根據情況而定,可以讀讀這個部落格預存程序的優缺點,分析的很詳細。

       那麼有沒有其他方法呢。。答案是有的,也許熟悉oracle資料庫的可能知道從oracle9i版本以後,可以使用一種方法即:"INSERT ALL INTO  a表 VALUES(各個值)  INTO a表 VALUES (其它值) INTO a表 VALUES(其它值) ....再跟一個SELECT 語句"。後邊跟的SELECT 語句我們可以從虛擬表裡查如 SELECT 1 FROM DUAL。注意後邊跟的SELECT語句可以隨意,不過不是把它SELECT出來的內容插入前邊的表裡,而是起到前邊的多個資料每次插入多少行的作用,這個多少行是和後邊跟的SELECT語句查出來幾條而定的,如後邊的跟的SELECT 語句查出了15條記錄,那麼前邊的"INSERT ALL INTO  a表 VALUES(各個值1)  INTO a表 VALUES (其它值2) INTO a表 VALUES(其它值3)"就會先插入值1對應的各個欄位插入15條記錄,然後插入值2各個對應的欄位15條記錄,然後插入值3對應的各個欄位15條記錄。

       我們要的是批量插入多個VALUES這樣的一條記錄,所以後邊的SELECT 語句只要能查出一條記錄就行,建議大家後邊用SELECT 1 FROM DUAL

       下邊看一個例子,一目瞭然,一看就會用了:

        OK了,我們實現了沒用預存程序用一條SQL陳述式完成了向oracle的表中插入多個指定的值。也許你會問這有啥用處,告訴你,如果你在一定情況下用到它,作用就大了,避免了寫複雜而又沒必要寫的預存程序,避免了執行多個SQL語句多次串連資料庫的開銷,當你知道了學到了,遇到問題用的時候就會明白了,不過鄙人不才,對資料庫瞭解不深,如果你覺得說的沒有道理或者你有更好的點子或者方法,非常歡迎留言交流,以便您,我,還有大家,共同的學習與成長。

轉載請註明—作者:Java我人生(陳磊興)   原文出處:http://blog.csdn.net/chenleixing/article/details/44708533 最後,認真看過的網友們,大神們,如有感覺我這個程式猿有哪個地方說的不對或者不妥或者你有很好的提議或者建議或點子方法,還望您大恩大德施捨n秒的時間留下你的寶貴文字(留言),以便你,我,還有廣大的程式猿們更快地成長與進步.......

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.