oracle數據庫一條sql語句批量插入數據


最近有個功能是需要重置不同身份的密碼根據不同的規則,其中一個規則就是手機號碼后六位,有多個身份,並且底層數據封裝的比較死,只能通過公用方法去更新密碼,但是這好幾個身份都有共同的數據特性,用戶編碼,用戶名稱,手機號碼,將這些字段存入一張臨時表,在開始時根據需要選中某個單位的某個身份進行密碼重置,這就涉及多個表插入臨時表,當數據多的時候每次插入一條記錄,一萬條數據執行一萬次記錄很不現實,所以需要執行一次sql插入多條記錄到數據庫當中

ORACLE 數據庫插入多條記錄的sql結構為:

INSERT ALL 
    INTO TABLENAME(FIELDS1, FIELD2) VALUES(VALUE1, VALUE2)  
    INTO TABLENAME(FIELDS1, FIELD2) VALUES(VALUE1, VALUE2)
SELECT 1 FROM DUAL;

與mysql稍有不同,

比如在前台根據需要選擇要初始化密碼的身份

StringBuilder strSQL = new StringBuilder ();
if(選中身份1)
{
        strSQL.Append ("INTO TABLENAME(FIELD1, FIELD2) VALUES (VALUE1, VALUE2  ")
}
if(選中身份2)
{
        strSQL.Append ("INTO TABLENAME(FIELD1, FIELD2) VALUES (VALUE1, VALUEE2 ")
}
if(選中身份3)
{
        strSQL.Append ("INTO TABLENAME(FIELD1, FIELD2) VALUES (VALUE1, VALUE2  ")
}
if (strSQL.Length == 0)
{
       “未查詢到數據”
        return;
}
strSQL.Insert (0, "INSERT ALL ");
 strSQL.Append (" SELECT 1 FROM DUAL ");
bool = 執行sql

在后續截取密碼中,先判斷手機號碼是否合法,

strTelphone = "15641481111";
strTelphone.substring(strTelphone.length -6); //后六位


免責聲明!

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



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