㈠ oracle 用存儲過程將某一些表裡面的數據查出來之後,批量插入另一張大表中,並判斷,若有些已經存在的數據
MERGE INTO table1 p
USING table2 np
ON (p.proct_id = np.proct_id)
WHEN MATCHED THEN
UPDATE
SET p.proct_name = np.proct_name,
WHEN NOT MATCHED THEN
INSERT
VALUES (np.proct_id, np.proct_name, np.category)
備註:
table1:是要插入數據的目標表
table2 :是數據的來源表
針對你提出的需求是不用寫存儲過程的,上面的sql就完全可以實現;當然,你將上面的sql代碼
放到過程體裡面就OK了,你試下吧
原因通常是:
1、數據量比較大時分批插入,有時甚至還會分成幾個表來插入數據。
2、大數據分批插入的原因是,為了記取速度的問題也會這樣的,這樣就可以提高軟體的性能。
3、分批插入還有時為了減少表的冗餘度。
㈢ excel中將一個表中不同的數據集,分組插入到一個Execl中的不同的Sheet中
數據龐大的話,建議使用數據透視表啦.
*****
那你直接按名字排序好了
***************
我編了個VBA小程序.如果你要保留原表的話.你選把原表拷到名為SHEET1的空白,表上.然後排好序.
在宏代碼框中輸入我的代碼.運行一下就行了.
我假設你的數據從A1開始的
Sub aaa()
Do While Sheets("sheet1").Range("a1").Value <> ""
Sheets("sheet1").Range("a1").Select
Range("1:" & WorksheetFunction.CountIf(Range("a:a"), Selection)).Select
Selection.Copy
Sheets.Add
Range("1:1").Select
ActiveSheet.Paste
Sheets("sheet1").Select
Selection.Delete
Loop
End Sub
㈣ oracle用insert怎麼分批插入數據
insert into 目標表 select * from 數據源表 where rownum >= 1 and rownum <=100;
使用rownum來控制每批插入數據的數量。
㈤ mysql資料庫如何批量插入數據,如有表A 欄位id name password email 如何插入大批量會員
1.首先在命令行控制台中打開mysql教程
或許命令的如下:
mysql -u root -p database_name
然後或許會提示輸入對應的密碼
2.下面這條命令或許對你有用,當你想更換一個資料庫教程的時候
mysql>use database_name
然後使用下面這個命令
mysql>source d:datafilename.sql
當然你需要將文件所在的路徑搞清楚,並且正確地使用了他
進入mysql 安裝所在的目錄的子目錄bin. 輸入執行導入sql的命令.
例如: 你的mysql 安裝在 d:mysql
步驟如下:
開始 -> 運行 -> 輸入CMD
D:
cd mysqlbin
mysql -u root -p123456 test <d:a.sql
其中 root 為你的mysql管理員用戶名, 123456 為密碼 test為資料庫名稱 d:a.sql 為備份下來的數據文件所在位置.
如果是Windows的話,從命令提示符下到MYSQL文件目錄中的Bin文件夾下,執行命令
mysql -u root -p databasename < db.sql
其中root是你MYSQL的用戶名,databasename是你資料庫的名稱,而db.sql你是的文件.注意你必須把db.sql放到bin文件夾下才可以.當然文件的位置可以換.
如果是LINUX的話,直接輸入
mysql databasename < db.sql
㈥ 如何在EXCEL數據表中(大量數據)每行下插入多行數據行
1、以下數據為模擬數據,在A列設定為任意名稱。
㈦ java 怎麼把5萬條數據分批插入數據到mysql,之前插1,2萬沒事, 多了就內存溢出
你的事務控制問題。
大量數據插入的時候,可以將數據量分批,每次事務提交一批。
例如:
con.setAutoCommit(false);// 更改JDBC事務的默認提交方式
Statement stmt = conn.createStatement();
// 第一批 省略n條
stmt.addBatch("insert into dept values (52,'a','aa')");
stmt.addBatch("insert into dept values (53,'b','bb')");
stmt.addBatch("insert into dept values (54,'c','cc')");
stmt.executeBatch();
con.commit();//提交JDBC事務
stmt.close();
// 第二批 省略n條
stmt = conn.createStatement();
stmt.addBatch("insert into dept values (52,'a','aa')");
stmt.addBatch("insert into dept values (53,'b','bb')");
stmt.addBatch("insert into dept values (54,'c','cc')");
stmt.executeBatch();
con.commit();//提交JDBC事務
stmt.close();
// 第n批
。。。。。。
con.setAutoCommit(true);// 恢復JDBC事務的默認提交方式
conn.close();
㈧ sql 從A表中查詢數據批量 插入B表中,如何設置批量處理
這個需要看你表結構
目測,你pd.OrderNO欄位是主鍵嗎?
如果是的話,你可以在你語句里限制一下
比如
insert GS_ProctTime
select pd.OrderNO,'pl22' plantcode,'機作' plantname,pd.pdProctCode,pd.pdName,'' ttype, sum(isnull(sumptTimeB,0)) t1,sum(isnull(pcTimeCxJ,0))*1.00 t2,0.00 t3,0.00 t4
from dbo.GS_pd_Procts pd
join V_GS_ProcessTime t on pd.orderno=ptProctCode and t.ptPlantCode='pl22'
where pd.OrderNO<=1000
group by pd.OrderNO,pd.pdProctCode,pd.pdName
如果再執行
insert GS_ProctTime
select pd.OrderNO,'pl22' plantcode,'機作' plantname,pd.pdProctCode,pd.pdName,'' ttype, sum(isnull(sumptTimeB,0)) t1,sum(isnull(pcTimeCxJ,0))*1.00 t2,0.00 t3,0.00 t4
from dbo.GS_pd_Procts pd
join V_GS_ProcessTime t on pd.orderno=ptProctCode and t.ptPlantCode='pl22'
where pd.OrderNO between 1001 and 2000
group by pd.OrderNO,pd.pdProctCode,pd.pdName