oracle到底能不能insert into 多個values!?
稍微熟悉oracle的都知道,如果我們想一條SQL語句向表中插入多個值的話,如果INSERT INTO 某表 VALUES(各個值),VALUES(各個值),.....;這樣會報錯的,因為oracle是不支援這種寫法的,如果多個INSERT INTO VALUEES(各個值);這樣以“;”隔開一同執行也是不行的,oracle也是不支援的。
不過MySQL這兩種方式都是支援的。
SQL Server也是不支援這兩種寫法的。
然而,有時我們在開發過程中,如果是用的oracle資料庫的話,有時很需要這種INSERT INTO 某表 一次效能插入多個值這樣的功能,但oracle又不支援以上兩種方式
那麼有沒有其他方法呢??答案是有的,也許熟悉oracle資料庫的可能知道從oracle9i版本以後,可以使用一種方法即:"INSERT ALL INTO a表 VALUES(各個值) INTO a表 VALUES (其它值) INTO a表 VALUES(其它值) ....再跟一個SELECT 語句
我們要的是批量插入多個VALUES這樣的一條記錄,所以後邊的SELECT 語句只要能查出一條記錄就行,建議大家後邊用SELECT 1 FROM DUAL。
下邊看一個例子,一目瞭然,一看就會用了:
OK了,我們實現了沒用儲存過程用一條SQL語句完成了向oracle的表中插入多個指定的值。也許你會問這有啥用處,告訴你,如果你在一定情況下用到它,作用就大了,避免了寫複雜而又沒必要寫的儲存過程,避免了執行多個SQL語句多次連線資料庫的開銷,當你知道了學到了,遇到問題用的時候就會明白了,不過鄙人不才,對資料庫瞭解不深,如果你覺得說的沒有道理或者你有更好的點子或者方法,非常歡迎留言交流,以便您,我,還有大家,共同的學習與成長!