由於項目中需要用到批量插入為了防止用戶插入重復的數據需要先判斷插入的數據是不是已經存在如果存在則忽略這次插入否則插入這條數據剛開始的時候是先用一條SQL語句判斷如果返回結果是真(記錄已經存在)則忽略否則插入這條數據這樣的話插入一條數據就要發起兩個到數據庫的連接後來發現這樣做效率實在太低了Google了一下發現oracle數據庫支持merge語句做了個測試成功了記錄下來供本人及同行以後查閱之用
數據庫TEST
CREATE TABLE TEST(
ID NUMBER NOT NULL
NAME VARCHAR() NOT NULL
SEX VARCHAR() DEFAULT 男
)
插入兩條數據
INSERT INTO TEST VALUES(SUNZHENXING男)
INSERT INTO TEST VALUES(SUNHAILONG女)
MERGE語句
MERGE INTO TEST A USING TEST B
ON (ANAME=BNAME)
WHEN MATCHED THEN
UPDATE SET ASEX=女WHERE ANAME=SUNZHENXING
WHEN NOT MATCHED THEN
INSERT VALUES (SUNZHENXING女)
需要注意的是MERGE語句中的UPDATE語句和INSERT語句和一般的SQL語句格式有點不同
From:http://tw.wingwit.com/Article/program/Oracle/201311/18365.html